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

