Android 推送原理(Android Push Notification)詳解
Android 推送原理
由于最近項目中涉及到了Android推送,所以看了一些關于android推送方面的東西,總結到后面我們知道android推送的實現可以歸結為3種:
1、POLL,拉。大致思路為向服務器定時的發(fā)送請求,然后自己讓服務器返回信息。
優(yōu)點:實現簡單。
缺點:實時性差。如果定時間隔小連接數又多,對服務器會有高壓力要求。據說還會費電……不知道是不是真的。
2、SMS,彩信方式。據說是攔截彩信,并解析內容。這個還沒有動手實踐過。
優(yōu)點:實現簡單。實時性也好。
缺點:SMS服務的成本問題。貴!
3、TCP/IP,持久的長連接。簡單的說就是與服務器建立一個基于TCP/IP持久連接,然后服務器就可以給你發(fā)消息了。
優(yōu)點:實時性好。
缺點:實現起來比較困難。據說也會比較費電……也沒測試過。
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
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Android開發(fā)之DatePickerDialog、TimePickerDialog時間日期對話框用法示例
這篇文章主要介紹了Android開發(fā)之DatePickerDialog、TimePickerDialog時間日期對話框用法,結合實例形式分析了Android使用DatePickerDialog、TimePickerDialog顯示日期時間相關操作技巧,需要的朋友可以參考下2019-03-03Android FrameWork之SytemServer進程fork示例
這篇文章主要為大家介紹了Android FrameWork之SytemServer進程fork示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07Android中View.post和Handler.post的關系
這篇文章主要介紹了Android中View.post和Handler.post的關系,View.post和Handler.post是Android開發(fā)中經常使用到的兩個”post“方法,關于兩者存在的區(qū)別與聯系,文章詳細分析需要的小伙伴可以參考一下2022-06-06Android用于加載xml的LayoutInflater源碼超詳細分析
今天不想去聊一些Android的新功能,新特性之類的東西,特別想聊一聊這個老生常談的話題:LayoutInflater,感興趣的朋友來看看吧2022-08-08Android--SQLite(增,刪,改,查)操作實例代碼
Android--SQLite(增,刪,改,查)操作實例代碼,需要的朋友可以參考一下2013-02-02