一、android和ios的推送的區(qū)別
? ? ? ? ios有自己統(tǒng)一的APNS(Apple Push Notification Service)和消息推送機(jī)制,無(wú)論什么應(yīng)用的推送都要排隊(duì)經(jīng)過(guò)同一個(gè)服務(wù)器,最后推送到用戶那里寂玲。
? ? ? ? android則不然爹橱,國(guó)內(nèi)的推送服務(wù)基本各自為政,比如JPUSH决乎、極光、友盟等等派桩。雖然google也有自己的GCM(google cloud message),但由于種種原因在國(guó)內(nèi)不容易使用构诚。
二、android推送的困境
1铆惑、國(guó)內(nèi)廠商自定義ROM的嚴(yán)格限制范嘱。這也是由于國(guó)內(nèi)流氓應(yīng)用太多,導(dǎo)致系統(tǒng)生態(tài)要求相比原生系統(tǒng)更為嚴(yán)格员魏。比如APP一旦從最近列表中滑除就會(huì)被強(qiáng)制停止丑蛤,APP之間的關(guān)聯(lián)啟動(dòng)也越來(lái)越被被嚴(yán)格限制著。比如華為的EMUI4就默認(rèn)禁止互相關(guān)聯(lián)撕阎。
2受裹、推送服務(wù)群雄割據(jù)、各自為政虏束。推送服務(wù)各自有各自的一套棉饶,使用同一推送服務(wù)的APP可以通過(guò)互相關(guān)聯(lián)以保證即使APP被殺死也能收到推送消息,但這也僅僅是在所有APP都使用同一個(gè)推送服務(wù)下才有的理想狀態(tài)(也是蘋(píng)果現(xiàn)在的狀態(tài))镇匀。實(shí)際上照藻,現(xiàn)在APP間的互相關(guān)聯(lián)也被嚴(yán)格限制著。
三汗侵、推送的原理(部分)
1幸缕、友盟推送是基于http的長(zhǎng)連接。APP在啟動(dòng)后同時(shí)開(kāi)啟一個(gè)channel服務(wù)晰韵,而如果多個(gè)使用了友盟推送的APP的channel服務(wù)會(huì)互相關(guān)聯(lián)冀值,并會(huì)選取其中一個(gè)channel服務(wù)作為宿主進(jìn)程。宿主進(jìn)程會(huì)通過(guò)http長(zhǎng)連接向友盟服務(wù)器拉取推送信息宫屠,并分發(fā)到各自的channel里列疗,最終實(shí)現(xiàn)消息推送。