Android 推送原理(Android Push Notification)詳解_Android

來源:互聯網
上載者:User

Android 推送原理

由於最近項目中涉及到了Android推送,所以看了一些關於android推送方面的東西,總結到後面我們知道android推送的實現可以歸結為3種:

1、POLL,拉。大致思路為向伺服器定時的發送請求,然後自己讓伺服器返回資訊。

優點:實現簡單。
缺點:即時性差。如果定時間隔小串連數又多,對伺服器會有高壓力要求。據說還會費電……不知道是不是真的。

2、SMS,多媒體訊息方式。據說是攔截多媒體訊息,並解析內容。這個還沒有動手實踐過。

優點:實現簡單。即時性也好。
缺點:SMS服務的成本問題。貴!

3、TCP/IP,持久的長串連。簡單的說就是與伺服器建立一個基於TCP/IP持久串連,然後伺服器就可以給你發訊息了。

優點:即時性好。
缺點:實現起來比較困難。據說也會比較費電……也沒測試過。

POLL的比較簡單,用Timer和TimerTask定時器,以及HTTP相關的幾個類就可以實現基本的功能,然後自己解析伺服器返回資訊。

主要是關於持久長串連的實現:1、基於IBM的MQTT實現。 2、基於XMPP實現

基於XMPP實現的有一個Androidpn項目,開源的。雖然後面項目中我採用了MQTT。因為Androidpn不夠成熟,裡面有一些bug,我暫時無法修掉。因為我只看了Android端的原始碼,也許有些bug需要根據服務端修改。(困擾我很久的問題是伺服器重啟後androidpn手機端無法重連,暫時放下了,等有需要再去啃它)

其項目源碼在這裡可以下:http://sourceforge.net/projects/androidpn/ 進去之後的Files標籤裡有3個資源:

androidpn-server 伺服器端代碼
androidpn-demoapp 執行個體(說實話,沒什麼用)
androidpn-client 手機端代碼

補充:我記得再匯入項目後可能會出現:unable to resolve target ‘google inc. : Google APIs :7'這樣的錯誤提示。

解決方案: 項目右鍵,Properties,Resource,Text file encoding,other,選擇UTF-8
                                                             Android,Project Build Target,選擇Android1.5

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.