新聞中心
Android消息推送原理
產(chǎn)品的角度:功能需要,比如說資訊類產(chǎn)品的新聞推送、工具類產(chǎn)品的公告推送等等
創(chuàng)新互聯(lián)建站是一家專業(yè)提供南潯企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為南潯眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
運營的角度:活動運營需要,比如說電商類產(chǎn)品的促銷活動;召回用戶 / 提高活躍度等等
作為開發(fā)者,不要有需求就接,應(yīng)該多思考、多理解用戶 / 功能的使用場景,有助于我們更好地去選擇合適的開發(fā)方式
系統(tǒng)級別:任何時候都可以推送給用戶,且不會被系統(tǒng)殺死
Android的消息推送服務(wù)稱為:C2DM(Cloudto Device Messaging)
消息推送的本質(zhì)是:App將服務(wù)器更新的信息推送給用戶,即App獲取服務(wù)器信息,再推送給用戶
App從服務(wù)器獲取最新消息的基本方式(原理)有3種:Push、Pull 和 SMS
經(jīng)總結(jié),Android中實現(xiàn)消息推送的有7種主流解決方案,接下來將一一介紹。
4.1 C2DM
定義:Cloud to Device Messaging,云端推送
Android系統(tǒng)級別的消息推送服務(wù)-Google出品
原理:基于Push方式,C2DM服務(wù)負責(zé)處理諸如消息排隊等事務(wù),并向運行于目標設(shè)備上的應(yīng)用程序分發(fā)這些消息。如下圖:
定義:輕量級的消息發(fā)布/訂閱協(xié)議
原理:基于Push方式,wmqtt.jar 是IBM提供的MQTT協(xié)議的實現(xiàn),原理如下圖:
其他三種:
客戶端
通信能夠在這三者的任意兩個之間雙向發(fā)生。
原理流程
現(xiàn)今主流的推送平臺分為
手機廠商類:小米推送、華為推送。
第三方平臺類:友盟推送、極光推送、云巴(基于MQTT)
BAT大廠的平臺推送:阿里云移動推送、騰訊信鴿推送、百度云推送
Android消息推送:第三方消息推送平臺詳細解析
其他推送方式還有:C2DM、輪詢、SMS、MQTT協(xié)議、XMPP協(xié)議等等,相對于這些推送方式,第三方推送方式的特點分別是:
請記住一個潛規(guī)則:操作系統(tǒng)是不會殺死屬于自己品牌的推送服務(wù)。
當今市場上的Android手機系統(tǒng)份額最高是MIUI系統(tǒng),即小米(具體排名請看 )
因為:免費、到達率高且在Android系統(tǒng)市場份額第一的MIUI系統(tǒng)上不被殺死。所以,如果要選擇手機廠商的推送服務(wù), 請選擇小米推送作為第三方平臺實現(xiàn)推送服務(wù)
下面一些應(yīng)用可以從側(cè)面來證明我的推斷:
請記住一個規(guī)則:推送系統(tǒng)會共享一條推送渠道
所以說,關(guān)于如何選擇第三方平臺類的推送,推送平臺的規(guī)模效應(yīng)就很重要了。
那如何得知他們的規(guī)模和市場份額呢?按個人經(jīng)驗,主要看兩點:
BAT大廠其實并沒有什么優(yōu)勢, 同時謹記:
所以,大家可根據(jù)自己的使用場景來進行消息推送平臺的選擇。
通常第三方推送平臺都支持兩種推送消息類型:通知欄消息和透傳消息。
不定期分享關(guān)于 安卓開發(fā) 的干貨,追求 短、平、快 ,但 卻不缺深度 。
android怎么做推送
android消息推送主要有一下幾種方式:
1.使用GCM(Google Cloude Messaging),因為采用的是google服務(wù)器,國內(nèi)不可用
2.使用XMPP協(xié)議(Openfi,re+Spark+Smark),XMPP(可擴展通訊和表示協(xié)議)是基于可擴展標記語言(XML)的協(xié)議,它用于即時消息(IM)以及在線探測。這個協(xié)議可能最終允許因特網(wǎng)用戶向因特網(wǎng)上的其他任何人發(fā)送即時消息
3.使用MQTT協(xié)議,MQTT是一個輕量級的消息發(fā)布/訂閱協(xié)議,它是實現(xiàn)基于手機客戶端的消息推送服務(wù)器的理想解決方案
4.HTTP輪循方式,定時向HTTP服務(wù)端接口(Web Service API)獲取最新消息
5.采用第三方服務(wù)
目前最常用的是使用第三方推送平臺,比如極光推送就不錯,極光推送,提供輕量級的客戶端SDK:開發(fā)者只需在客戶端集成極光推送 SDK,即可輕松地添加 Push功能到他的 App中。極光推送支持 Android、iOS、windows phone等平臺,系統(tǒng)穩(wěn)定,消息送達率高,速度快
android系統(tǒng)的APP消息推送機制
參考文章:
1. 主流的第三方推送平臺分類
手機廠商類:小米推送、華為推送。
第三方平臺類:友盟推送、極光推送、云巴(基于MQTT)
BAT大廠的平臺推送:阿里云移動推送、騰訊信鴿推送、百度云推送
2. 對比其他推送方式的特點
其他推送方式還有:C2DM、輪詢、SMS、MQTT協(xié)議、XMPP協(xié)議等等,相對于這些推送方式,第三方推送方式的特點分別是:
優(yōu)點:
成本低
上述的推送大多數(shù)是免費的,假如自己實現(xiàn)則消耗過多資源(開發(fā)成本和后臺管理、統(tǒng)計成本)
消息到達率高
如果一個手機里有多個App使用了同一家推送服務(wù),那么這些App將共用一條消息通道,即使你家的App推送服務(wù)被殺死了,那么只要用戶打開了其他集成該推送服務(wù)的App,你家的推送就能到達用戶
缺點
安全性低
使用別人的服務(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ù)。
當今市場上的Android手機系統(tǒng)份額最高是MIUI系統(tǒng),即小米(具體排名請看)
因為:免費、到達率高且在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)勢,同時謹記:
不要以為用了騰訊信鴿推送,就能占上微信的光保證你的App永遠內(nèi)部被殺死。
說個題外話,手機淘寶除了自家的阿里云的移動推送,同時也使用其它的第三方推送平臺?。ū热缬衙送扑停?。
4. 如何選擇第三方平臺推送服務(wù)?
主要從用戶類別+實現(xiàn)成本+渠道來選擇不同的使用場景
1. 如果用戶群體精準(使用小米手機或華為手機居多),可以考慮只集成對應(yīng)手機廠商的推送;
注意:單一的手機廠商也能工作,比如小米推送在非小米手機上當然也能工作,只不過不是系統(tǒng)級別的服務(wù)了,容易被殺死。
如果用戶群體廣泛、希望實現(xiàn)成本低,可以考慮只使用單一第三方平臺類的推送(極光、友盟blabla,選一個規(guī)模效應(yīng)最大的)
如果用戶群體廣泛、不在意實現(xiàn)成本,個人建議:
對于小米手機,使用小米推送;
對于華為手機,使用華為推送;
對于其他手機,只使用單一第三方平臺類的推送(極光、友盟blabla,選一個規(guī)模效應(yīng)最大的)
讓不同的推送運行在各自擅長的環(huán)境里,最大化實現(xiàn)推送的到達率和產(chǎ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ù)不同的使用場景來對推送消息類別進行選擇了。
android 消息推送是什么,消息推送一般是怎么做的
Android消息推送,基本上都是以長鏈接的方式實現(xiàn)的,其原理是客戶端主動和服務(wù)器建立TCP長鏈接,長鏈接建立之后,客戶端定期向服務(wù)器發(fā)送心跳包用于保持鏈接,當有消息要發(fā)送的時候,服務(wù)器可以直接通過這個已經(jīng)建立好的長鏈接,將消息發(fā)送到客戶端。
Android端可以通過兩種方式實現(xiàn)消息推送,一種是自建推送平臺,但這種方式耗時耗力成本高,且長鏈接的穩(wěn)定性和存活性難以保障;另外一種是直接選用像個推這樣的第三方消息推送供應(yīng)商。開發(fā)者只需要集成個推消息推送SDK,即可簡單、快捷地實現(xiàn)Android平臺的消息推送功能,有效提高產(chǎn)品活躍度、增加用戶留存。此外,個推消息推送在消息推送的基本性能上,如省電省流量、長鏈接穩(wěn)定性、推送速率、安全性等方面都具有領(lǐng)先業(yè)內(nèi)的優(yōu)勢。
如果您對個推消息推送感興趣,歡迎您前往個推開發(fā)者中心免費注冊體驗。
個推消息推送工作原理
文章題目:android的消息推送,android消息推送服務(wù)
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/dsscdig.html