Android 推送原理(Android Push Notification)詳解
Android 推送原理
由于最近項(xiàng)目中涉及到了Android推送,所以看了一些關(guān)于android推送方面的東西,總結(jié)到后面我們知道android推送的實(shí)現(xiàn)可以歸結(jié)為3種:
1、POLL,拉。大致思路為向服務(wù)器定時(shí)的發(fā)送請(qǐng)求,然后自己讓服務(wù)器返回信息。
優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單。
缺點(diǎn):實(shí)時(shí)性差。如果定時(shí)間隔小連接數(shù)又多,對(duì)服務(wù)器會(huì)有高壓力要求。據(jù)說還會(huì)費(fèi)電……不知道是不是真的。
2、SMS,彩信方式。據(jù)說是攔截彩信,并解析內(nèi)容。這個(gè)還沒有動(dòng)手實(shí)踐過。
優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單。實(shí)時(shí)性也好。
缺點(diǎn):SMS服務(wù)的成本問題。貴!
3、TCP/IP,持久的長(zhǎng)連接。簡(jiǎn)單的說就是與服務(wù)器建立一個(gè)基于TCP/IP持久連接,然后服務(wù)器就可以給你發(fā)消息了。
優(yōu)點(diǎn):實(shí)時(shí)性好。
缺點(diǎn):實(shí)現(xiàn)起來比較困難。據(jù)說也會(huì)比較費(fèi)電……也沒測(cè)試過。
POLL的比較簡(jiǎn)單,用Timer和TimerTask定時(shí)器,以及HTTP相關(guān)的幾個(gè)類就可以實(shí)現(xiàn)基本的功能,然后自己解析服務(wù)器返回信息。
主要是關(guān)于持久長(zhǎng)連接的實(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
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android中導(dǎo)航組件Navigation的實(shí)現(xiàn)原理
- 用Android?studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能
- Android Studio實(shí)現(xiàn)簡(jiǎn)易進(jìn)制轉(zhuǎn)換計(jì)算器
- Android?Studio實(shí)現(xiàn)簡(jiǎn)單計(jì)算器開發(fā)
- Android?studio實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的編寫
- Android?Studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器源碼
- android?studio實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器
- 深入了解Android?IO的底層原理
相關(guān)文章
Android?換膚實(shí)現(xiàn)指南demo及案例解析
這篇文章主要為大家介紹了Android換膚指南demo及案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Android開發(fā)之DatePickerDialog、TimePickerDialog時(shí)間日期對(duì)話框用法示例
這篇文章主要介紹了Android開發(fā)之DatePickerDialog、TimePickerDialog時(shí)間日期對(duì)話框用法,結(jié)合實(shí)例形式分析了Android使用DatePickerDialog、TimePickerDialog顯示日期時(shí)間相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Android FrameWork之SytemServer進(jìn)程fork示例
這篇文章主要為大家介紹了Android FrameWork之SytemServer進(jìn)程fork示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Android中View.post和Handler.post的關(guān)系
這篇文章主要介紹了Android中View.post和Handler.post的關(guān)系,View.post和Handler.post是Android開發(fā)中經(jīng)常使用到的兩個(gè)”post“方法,關(guān)于兩者存在的區(qū)別與聯(lián)系,文章詳細(xì)分析需要的小伙伴可以參考一下2022-06-06Android實(shí)現(xiàn)LED發(fā)光字效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)LED發(fā)光字效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Android使用Service實(shí)現(xiàn)IPC通信的2種方式
這篇文章主要介紹了Android使用Service實(shí)現(xiàn)IPC通信的2種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Android用于加載xml的LayoutInflater源碼超詳細(xì)分析
今天不想去聊一些Android的新功能,新特性之類的東西,特別想聊一聊這個(gè)老生常談的話題:LayoutInflater,感興趣的朋友來看看吧2022-08-08Android--SQLite(增,刪,改,查)操作實(shí)例代碼
Android--SQLite(增,刪,改,查)操作實(shí)例代碼,需要的朋友可以參考一下2013-02-02