前言
- 消息推送在Android開發(fā)中應(yīng)用的場景是越來越多了廊散,比如說電商產(chǎn)品進行活動宣傳往踢、資訊類產(chǎn)品進行新聞推送等等伶授,如下圖:
- 本文將介紹Android中實現(xiàn)消息推送的第三方推送的詳細(xì)解決方案
閱讀本文前躯概,建議先閱讀我寫的文章:史上最全解析Android消息推送解決方案
目錄
1. 主流的第三方推送平臺分類
- 手機廠商類:小米推送气堕、華為推送纺腊。
- 第三方平臺類:友盟推送畔咧、極光推送、云巴(基于MQTT)
- BAT大廠的平臺推送:阿里云移動推送揖膜、騰訊信鴿推送誓沸、百度云推送
2. 對比其他推送方式的特點
其他推送方式還有:C2DM、輪詢壹粟、SMS拜隧、MQTT協(xié)議、XMPP協(xié)議等等趁仙,相對于這些推送方式洪添,第三方推送方式的特點分別是:
2.1 優(yōu)點:
- 成本低
上述的推送大多數(shù)是免費的,假如自己實現(xiàn)則消耗過多資源(開發(fā)成本和后臺管理幸撕、統(tǒng)計成本) - 消息到達率高
如果一個手機里有多個App使用了同一家推送服務(wù)薇组,那么這些App將共用一條消息通道,即使你家的App推送服務(wù)被殺死了坐儿,那么只要用戶打開了其他集成該推送服務(wù)的App律胀,你家的推送就能到達用戶
2.2 缺點
- 安全性低
使用別人的服務(wù)器,所以你懂的貌矿。 - 服務(wù)會被殺死
由于Android系統(tǒng)的機制炭菌,后臺推送 Service 會被各種主動的或是被動的行為給殺死,而服務(wù)一旦被殺死逛漫,意味著就接收不到推送消息黑低。
3. 第三方推送服務(wù)方式的特點
- 第三方服務(wù)基本都具備免費、和到達率高的特點
- 那么應(yīng)該如何選擇呢酌毡?我們來分別看一下第三方推送各種方式的優(yōu)點:
3.1 手機廠商推送
請記住一個潛規(guī)則:操作系統(tǒng)是不會殺死屬于自己品牌的推送服務(wù)克握。
- 手機廠商的推送服務(wù)在自家的手機上屬于系統(tǒng)級別的服務(wù),這意味著系統(tǒng)不會殺死自家的推送服務(wù)
- 比如說枷踏,Android原生系統(tǒng)是不會殺死C2DM消息推送服務(wù)菩暗,MIUI系統(tǒng)是不會殺死小米的推送服務(wù)。
當(dāng)今市場上的Android手機系統(tǒng)份額最高是MIUI系統(tǒng)旭蠕,即小米(具體排名請看http://www.umindex.com/)
因為:免費停团、到達率高且在Android系統(tǒng)市場份額第一的MIUI系統(tǒng)上不被殺死。所以掏熬,如果要選擇手機廠商的推送服務(wù)佑稠,請選擇小米推送作為第三方平臺實現(xiàn)推送服務(wù)
下面一些應(yīng)用可以從側(cè)面來證明我的推斷:
- 騰訊新聞使用的小米推送,沒有使用自己家的信鴿推送
- 淘寶使用了自家的阿里云推送旗芬,同時還集成了小米推送
- 百度視頻和愛奇藝使用的是小米推送舌胶,沒有用自家的百度推送
- 官網(wǎng)截圖 - 集成應(yīng)用:
- 如果希望進一步提高推送的效果,其實可以集成多個手機廠商的推送服務(wù)
- 比如小米渠道用小米推送疮丛,華為渠道用華為推送幔嫂,但這樣的實現(xiàn)成本會大一些
3.2 第三方平臺類
請記住一個規(guī)則:推送系統(tǒng)會共享一條推送渠道
- 這意味著假設(shè)你接入了友盟推送漱办,而恰好今日頭條也接入了友盟。
- 有一天你的App被殺死了婉烟,但這時用戶啟動了今日頭條,那么推送系統(tǒng)也就會通過共享的推送通道順便把你推送消息送達到手機上暇屋,然后還可能把你的進程也喚醒(被“彼圃活”了)。
所以說咐刨,關(guān)于如何選擇第三方平臺類的推送昙衅,推送平臺的規(guī)模效應(yīng)就很重要了。
那如何得知他們的規(guī)模和市場份額呢定鸟?按個人經(jīng)驗而涉,主要看兩點:
- 問內(nèi)部的朋友。
- 看推送平臺的合作客戶里有哪些大的app - 參考對應(yīng)官網(wǎng)的合作案例
3.3 BAT大廠的推送
BAT大廠其實并沒有什么優(yōu)勢联予,同時謹(jǐn)記:
- 不要以為用了騰訊信鴿推送啼县,就能占上微信的光保證你的App永遠(yuǎn)內(nèi)部被殺死。
- 說個題外話沸久,手機淘寶除了自家的阿里云的移動推送季眷,同時也使用其它的第三方推送平臺啊(比如友盟推送)卷胯。
4. 如何選擇第三方平臺推送服務(wù)子刮?
選擇因素
用戶群體屬性、實現(xiàn)成本窑睁、渠道具體選擇方案
所以挺峡,大家可根據(jù)自己的使用場景來進行消息推送平臺的選擇。
5. 推送消息類別的選擇
5.1 推送消息的類別
通常第三方推送平臺都支持兩種推送消息類型:通知欄消息和透傳消息担钮。
- 通知欄消息:該類消息在被送達用戶的設(shè)備后橱赠,直接以系統(tǒng)通知欄的形式展示給用戶
不會繼續(xù)被傳遞到App
- 透傳消息:該類消息在被送達用戶的設(shè)備后,還會繼續(xù)傳遞到App
- 通過回調(diào)App的某個BroadcastReceiver的形式將消息傳遞到App內(nèi)部裳朋。然后由App決定如何處理和顯示這個消息病线。
- 所以透傳消息不一定會以系統(tǒng)通知欄的形式進行推送,由程序猿自定義
5.2 消息類別的區(qū)別與特點
- 二者的區(qū)別在于:透傳消息在整個消息傳遞過程中比通知欄消息多了一步-傳遞到App
- 通知欄消息的優(yōu)點:送達率高
因為透傳消息在整個消息傳遞過程中比通知欄消息多了一步-傳遞到App鲤嫡,因此透傳消息就增加一些被系統(tǒng)限制的概率送挑,給系統(tǒng)殺死的概率就高一些,所以說暖眼,通知欄消息比透傳消息應(yīng)該能提供更好的送達率惕耕。
我們來看下小米推送的官方文檔描述:
- 在一些 Android 系統(tǒng)(如 MIUI)中,受到系統(tǒng)自啟動管理設(shè)置的限制,應(yīng)用不能在后臺自啟動
- 在這類系統(tǒng)中诫肠,如果在發(fā)送消息的時候?qū)?yīng)的應(yīng)用沒有被啟動司澎,透傳類消息將不能順利送達欺缘。
- 因此,對于對送達率要求很高的消息,建議盡量采用通知欄提醒的方式推送消息
- 透傳消息的優(yōu)點:對消息操作程度高 & 自定義程度高
- 提供了對消息數(shù)據(jù)的更靈活的操縱能力。
App如果僅僅通過通知欄消息挤安,是無法接觸到消息數(shù)據(jù)本身的谚殊。
- 可自定義通知提醒的樣式(包括提示樣式、提示形式如聲音等等)
所以大家可以根據(jù)不同的使用場景來對推送消息類別進行選擇了蛤铜。
6. 總結(jié)
相信大家已經(jīng)非常了解關(guān)于第三方推送的相關(guān)信息嫩絮。
關(guān)于Android消息推送的其他知識,具體請看:
史上最全解析Android消息推送解決方案
Android消息推送:手把手教你集成小米推送接下來围肥,我會繼續(xù)介紹具體如何在Android應(yīng)用中集成相應(yīng)的第三方推送功能(小米推送剿干、極光推送、個推等等)穆刻,感興趣的同學(xué)可以繼續(xù)關(guān)注本人運營的
Wechat Public Account
:
請點贊置尔!因為你的鼓勵是我寫作的最大動力!
相關(guān)文章閱讀
史上最全解析Android消息推送解決方案
Android開發(fā):最全面氢伟、最易懂的Android屏幕適配解決方案
Android開發(fā):Handler異步通信機制全面解析(包含Looper榜轿、Message Queue)
Android開發(fā):頂部Tab導(dǎo)航欄實現(xiàn)(TabLayout+ViewPager+Fragment)
Android開發(fā):底部Tab菜單欄實現(xiàn)(FragmentTabHost+ViewPager)
Android開發(fā):JSON簡介及最全面解析方法!
Android開發(fā):XML簡介及DOM、SAX朵锣、PULL解析對比
歡迎關(guān)注Carson_Ho的簡書差导!
不定期分享關(guān)于安卓開發(fā)的干貨,追求短猪勇、平设褐、快,但卻不缺深度泣刹。