Android推送方案調(diào)研

本文寫于2017年5月2日,隨著技術(shù)演進(jìn)可能有不準(zhǔn)確的情況仪媒,歡迎指正姜钳。

現(xiàn)狀

鑒于國內(nèi)Android開發(fā)的生態(tài)環(huán)境,國產(chǎn) ROM 無法使用 GCM 推送领迈,就催生了很多推送方案來替代GCM彻磁,目前的推送方案按照推送通道可以簡單劃分為三種:

系統(tǒng)級推送
  • 特征:系統(tǒng)級長連接,實(shí)現(xiàn)方式類似于IOS 平臺 APNS狸捅。
  • 廠商:有能力控制上游ROM的廠商衷蜓,在系統(tǒng)中內(nèi)置自己的推送服務(wù)通道,如 Google GCM尘喝、小米推送磁浇、華為推送 等
  • 優(yōu)點(diǎn):使用系統(tǒng)服務(wù),省電朽褪,可靠置吓,成功率高,app被完全殺死后仍能收到推送鞍匾。
  • 缺點(diǎn):Android 平臺碎片化問題交洗,各家的服務(wù)通道不能通用,GCM 只能在有完整Google 服務(wù)框架的手機(jī)上使用橡淑,其他類似构拳。
三方推送
  • 特征:app級長連接通道。標(biāo)配:由系統(tǒng)事件廣播绷禾模活進(jìn)程置森。pro:獨(dú)立進(jìn)程,共用長連接符糊,鏈?zhǔn)絾拘训取?/li>
  • 廠商:提供推送及增值服務(wù)凫海,如友盟推送、個推男娄、騰訊信鴿行贪、百度云推送等
  • 優(yōu)點(diǎn):通用性較強(qiáng),各種ROM上都能用模闲,app在活動時成功率與系統(tǒng)級推送相當(dāng)建瘫。
  • 缺點(diǎn):app被殺死后成功率較低,這點(diǎn)在國產(chǎn)ROM上尤為明顯尸折。進(jìn)程眴牛活、鏈?zhǔn)絾拘褧?dǎo)致耗電量增加实夹。進(jìn)程遍吓ǎ活和喚醒機(jī)制受限于系統(tǒng)及各種優(yōu)化軟件粒梦。
混合推送
  • 特征:同時包含系統(tǒng)級長連接通道和 app 級長連接通道
  • 廠商:小米推送,阿里云推送荸实,LeanCloud Push匀们,極光推送等。
  • 優(yōu)點(diǎn):適應(yīng)性比純系統(tǒng)級推送強(qiáng)泪勒,成功率相對純?nèi)酵扑洼^高
  • 缺點(diǎn):除小米推送外昼蛀,其他推送方式都是以膠水的方式捆綁了系統(tǒng)級推送和自家三方推送(類似于友盟分享)宴猾,開發(fā)成本相對稍高圆存。

三方推送采用的進(jìn)程保活以及鏈?zhǔn)絾拘鸭夹g(shù)仇哆,流不流氓暫且不表沦辙,但一直是國內(nèi) ROM 廠商和系統(tǒng)優(yōu)化軟件嚴(yán)打的對象。
三方推送廠商所謂的 “需要把應(yīng)用加到【自啟動管理】列表”等設(shè)置讹剔, 站在用戶的角度顯然是不現(xiàn)實(shí)的油讯。
隨著 Android 系統(tǒng)版本迭代過程中對系統(tǒng)權(quán)限控制的收緊,以及ROM廠商的省電策略延欠,單一的三方推送成功率只能用慘不忍睹來形容陌兑。
為了提高成功率,使用多通道推送是一種必要卻又無奈的做法由捎。

推送效果簡單對比

首先要了解一些推送的基本條件兔综。

通知與透傳消息
  • 在系統(tǒng)級推送中,通知交給相應(yīng)的PushSDK處理狞玛,透傳由我們自己App處理软驰。
  • 透傳消息可以自定義消息內(nèi)容,擁有更大的靈活度心肪;通知消息格式較為死板固定锭亏。
  • 根本區(qū)別在于通知消息走的是系統(tǒng)公用通道,透傳消息走的是app私有通道硬鞍;對于小米推送慧瘤、華為推送來說,只有采用通知消息固该,到達(dá)率才有保證锅减,透傳消息,與三方推送并沒有什么區(qū)別蹬音。
  • 在三方推送中上煤,其提供的通知和透傳消息走的都是app級通道。
app 運(yùn)行狀態(tài)
  • app 運(yùn)行時在網(wǎng)絡(luò)正常的情況下著淆,各家推送服務(wù)送達(dá)效果相當(dāng)劫狠,只是延遲有差異
  • app 被殺死后拴疤,系統(tǒng)級推送在對應(yīng)平臺有著天然的優(yōu)勢,但僅限于通知類型的消息独泞。透傳消息與三方推送的結(jié)果類似呐矾,在國產(chǎn)ROM上直接“陣亡”了。
下面主要對比App被殺死后發(fā)推送的測試結(jié)果:

測試機(jī)型:

  • Nexus5 Android 6.0.1
  • 一加3T 刷MIUI v8 (基于Android 6.0.1)
  • 小米note MIUI v7 (基于Android 4.4)
  • 華為 Mate9 EMUI5.0 (基于Android 7.0)
  • 華為 Mate7 (基于Android 4.4)

√ 收到 x不能收到 - 未測試

通知消息:
推送方式 原生Android MIUI v8 MIUI v7 EMUI 5.0 EMUI 3.0
Google GCM x x x x
小米推送 x -
華為推送 x x x x
LeanCloud Push x x x -
透傳消息:
推送方式 原生Android MIUI v8 MIUI v7 EMUI 5.0 EMUI 3.0
Google GCM x x x x
小米推送 x x x -
華為推送 x x x x x
LeanCloud Push x x x -
  • 華為推送
    app被殺死后在EMUI 5.0 系統(tǒng)下仍能收到通知消息懦砂,透傳消息接收失敗
    僅支持 EMUI 5.0以上版本蜒犯,低版本和其他ROM 創(chuàng)建連接失敗,完全不能使用荞膘。

  • 小米推送
    app被殺死后在MIUI系統(tǒng)下仍能收到通知消息罚随,透傳消息接收失敗
    非MIUI系統(tǒng)下,小米推送可以使用app級通道羽资,此時與三方推送類似

相對而言淘菩,小米推送的完成度更高,在系統(tǒng)推送的基礎(chǔ)上實(shí)現(xiàn)了三方通道屠升,兼容了非 MIUI 的 Android 機(jī)潮改,而且有 IOS 平臺的SDK,在一定程度上可以替代三方推送腹暖。華為推送僅支持自家EMUI 5.0以上系統(tǒng)汇在。

結(jié)論:

  • 如果是從零開開始開發(fā),只接入小米推送脏答,就可以覆蓋到大部分 Android 機(jī)型糕殉,并且可以在 MIUI 上獲得加成。
  • 如果追求高送達(dá)率以蕴,可以采用目前已知的“捆綁”混合推送方案例如:阿里云推送糙麦,極光推送等。
  • 如果項(xiàng)目中已經(jīng)接入了三方推送而效果又不理想丛肮,可以考慮單獨(dú)接入小米赡磅、華為等平臺的 SDK 來提高在國產(chǎn) ROM 上的送達(dá)率,需要自行處理數(shù)據(jù)整合的問題宝与。
混合推送參考文檔

阿里云推送 費(fèi)用參考 :目前支持小米和華為
LeanCloudPush 費(fèi)用參考 :目前支持華為和魅族焚廊,暫不支持小米
極光推送 : 目前支持小米、華為和魅族
小米推送

關(guān)于推送方案习劫,可以參考另外兩篇文章:
集成第三方推送最佳實(shí)踐
Android端外推送到底有多煩咆瘟?
推送 從入門到放棄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诽里,隨后出現(xiàn)的幾起案子袒餐,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灸眼,死亡現(xiàn)場離奇詭異卧檐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)焰宣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門霉囚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匕积,你說我怎么就攤上這事盈罐。” “怎么了闪唆?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵盅粪,是天一觀的道長。 經(jīng)常有香客問我苞氮,道長湾揽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任笼吟,我火速辦了婚禮,結(jié)果婚禮上霸旗,老公的妹妹穿的比我還像新娘贷帮。我一直安慰自己,他們只是感情好诱告,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布撵枢。 她就那樣靜靜地躺著,像睡著了一般精居。 火紅的嫁衣襯著肌膚如雪锄禽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天靴姿,我揣著相機(jī)與錄音沃但,去河邊找鬼。 笑死佛吓,一個胖子當(dāng)著我的面吹牛宵晚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播维雇,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼淤刃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吱型?” 一聲冷哼從身側(cè)響起逸贾,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后铝侵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掂名,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年哟沫,在試婚紗的時候發(fā)現(xiàn)自己被綠了饺蔑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗜诀,死狀恐怖猾警,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隆敢,我是刑警寧澤发皿,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站拂蝎,受9級特大地震影響穴墅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜温自,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一玄货、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悼泌,春花似錦松捉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鸠踪,卻和暖如春丙者,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背营密。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工械媒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卵贱。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓滥沫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親键俱。 傳聞我的和親對象是個殘疾皇子兰绣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容