Android 推送原理(Android Push Notification)詳解
Android 推送原理
由于最近項目中涉及到了Android推送,所以看了一些關(guān)于android推送方面的東西,總結(jié)到后面我們知道android推送的實現(xiàn)可以歸結(jié)為3種:
1、POLL,拉。大致思路為向服務(wù)器定時的發(fā)送請求,然后自己讓服務(wù)器返回信息。
優(yōu)點:實現(xiàn)簡單。
缺點:實時性差。如果定時間隔小連接數(shù)又多,對服務(wù)器會有高壓力要求。據(jù)說還會費電……不知道是不是真的。
2、SMS,彩信方式。據(jù)說是攔截彩信,并解析內(nèi)容。這個還沒有動手實踐過。
優(yōu)點:實現(xiàn)簡單。實時性也好。
缺點:SMS服務(wù)的成本問題。貴!
3、TCP/IP,持久的長連接。簡單的說就是與服務(wù)器建立一個基于TCP/IP持久連接,然后服務(wù)器就可以給你發(fā)消息了。
優(yōu)點:實時性好。
缺點:實現(xiàn)起來比較困難。據(jù)說也會比較費電……也沒測試過。
POLL的比較簡單,用Timer和TimerTask定時器,以及HTTP相關(guān)的幾個類就可以實現(xiàn)基本的功能,然后自己解析服務(wù)器返回信息。
主要是關(guān)于持久長連接的實現(xiàn):1、基于IBM的MQTT實現(xiàn)。 2、基于XMPP實現(xiàn)
基于XMPP實現(xiàn)的有一個Androidpn項目,開源的。雖然后面項目中我采用了MQTT。因為Androidpn不夠成熟,里面有一些bug,我暫時無法修掉。因為我只看了Android端的源代碼,也許有些bug需要根據(jù)服務(wù)端修改。(困擾我很久的問題是服務(wù)器重啟后androidpn手機端無法重連,暫時放下了,等有需要再去啃它)
其項目源碼在這里可以下:http://sourceforge.net/projects/androidpn/ 進去之后的Files標簽里有3個資源:
androidpn-server 服務(wù)器端代碼
androidpn-demoapp 實例(說實話,沒什么用)
androidpn-client 手機端代碼
補充:我記得再導入項目后可能會出現(xiàn):unable to resolve target ‘google inc. : Google APIs :7'這樣的錯誤提示。
解決方法: 項目右鍵,Properties,Resource,Text file encoding,other,選擇UTF-8
Android,Project Build Target,選擇Android1.5
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android5.1系統(tǒng)通過包名給應(yīng)用開放系統(tǒng)權(quán)限的方法
這篇文章主要介紹了Android5.1系統(tǒng)通過包名給應(yīng)用開放系統(tǒng)權(quán)限的方法,此文介紹一種通過修改Android平臺系統(tǒng)層代碼,根據(jù)指定的應(yīng)用包名給對應(yīng)的應(yīng)用在該平臺上開放系統(tǒng)權(quán)限,需要的朋友可以參考下2017-11-11
探討Android 的屏幕滾動操作不如 iPhone 流暢順滑的原因
雖然很多Android手機的配置都比iPhone要高,比如大多數(shù)Andorid手機的內(nèi)存都有1GB,而iPhone 4S只有512MB內(nèi)存,但用過iPhone的人都知道Android手機在使用的時候總感覺沒有那么順滑,究竟為什么會出現(xiàn)這種現(xiàn)象呢?2014-07-07
Android?Studio開發(fā)實現(xiàn)簡單計算器功能
這篇文章主要為大家詳細介紹了Android?Studio開發(fā)實現(xiàn)簡單計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05

