Android
開發中應用的場景是愈來愈多了,好比說電商產品進行活動宣傳、資訊類產品進行新聞推送等等,以下圖:Android
中實現消息推送的第三方推送的詳細解決方案閱讀本文前,建議先閱讀我寫的文章:史上最全解析Android消息推送解決方案安全
其餘推送方式還有:C2DM、輪詢、SMS、MQTT協議、XMPP協議等等,相對於這些推送方式,第三方推送方式的特色分別是:服務器
優勢:微信
缺點app
請記住一個潛規則:操做系統是不會殺死屬於本身品牌的推送服務。post
- 手機廠商的推送服務在自家的手機上屬於系統級別的服務,這意味着系統不會殺死自家的推送服務
- 好比說,Android原生系統是不會殺死C2DM消息推送服務,MIUI系統是不會殺死小米的推送服務。
當今市場上的Android手機系統份額最高是MIUI系統,即小米(具體排名請看http://www.umindex.com/)阿里雲
由於:免費、到達率高且在Android系統市場份額第一的MIUI系統上不被殺死。因此,若是要選擇手機廠商的推送服務,請選擇小米推送做爲第三方平臺實現推送服務操作系統
下面一些應用能夠從側面來證實個人推斷:3d
- 若是但願進一步提升推送的效果,其實能夠集成多個手機廠商的推送服務
- 好比小米渠道用小米推送,華爲渠道用華爲推送,但這樣的實現成本會大一些
請記住一個規則:推送系統會共享一條推送渠道code
- 這意味着假設你接入了友盟推送,而剛好今日頭條也接入了友盟。
- 有一天你的App被殺死了,但這時用戶啓動了今日頭條,那麼推送系統也就會經過共享的推送通道順便把你推送消息送達到手機上,而後還可能把你的進程也喚醒(被「保活」了)。
因此說,關於如何選擇第三方平臺類的推送,推送平臺的規模效應就很重要了。 那如何得知他們的規模和市場份額呢?按我的經驗,主要看兩點:cdn
BAT大廠其實並無什麼優點,同時謹記:
主要從用戶類別+實現成本+渠道來選擇不一樣的使用場景
注意:單一的手機廠商也能工做,好比小米推送在非小米手機上固然也能工做,只不過不是系統級別的服務了,容易被殺死。
若是用戶羣體普遍、但願實現成本低,能夠考慮只使用單一第三方平臺類的推送(極光、友盟blabla,選一個規模效應最大的)
若是用戶羣體普遍、不在乎實現成本,我的建議:
讓不一樣的推送運行在各自擅長的環境裏,最大化實現推送的到達率和產品的存活率
一般第三方推送平臺都支持兩種推送消息類型:通知欄消息和透傳消息。
不會繼續被傳遞到App
- 經過回調App的某個BroadcastReceiver的形式將消息傳遞到App內部。而後由App決定如何處理和顯示這個消息。
- 因此透傳消息不必定會以系統通知欄的形式進行推送,由程序猿自定義
咱們來看下小米推送的官方文檔描述:
- 在一些 Android 系統(如 MIUI)中,受到系統自啓動管理設置的限制,應用不能在後臺自啓動
- 在這類系統中,若是在發送消息的時候對應的應用沒有被啓動,透傳類消息將不能順利送達。
- 所以,對於對送達率要求很高的消息,建議儘可能採用通知欄提醒的方式推送消息
App若是僅僅經過通知欄消息,是沒法接觸到消息數據自己的。
相信你們已經很是瞭解關於第三方推送的相關信息。
關於Android消息推送的其餘知識,具體請看: 史上最全解析Android消息推送解決方案 Android消息推送:手把手教你集成小米推送
接下來,我會繼續介紹具體如何在Android應用中集成相應的第三方推送功能(小米推送、極光推送、個推等等),有興趣能夠繼續關注Carson_Ho的安卓開發筆記