Android P正式版即將到來(lái):后臺(tái)應(yīng)用保活、消息推送的真正噩夢(mèng)
Posted on 2018-08-02 15:27 Jack Jiang 閱讀(343) 評(píng)論(0) 編輯 收藏1、前言
對(duì)于廣大Android開(kāi)發(fā)者來(lái)說(shuō),Android O(即Android 8.0)還沒(méi)玩熱,Andriod P(即Andriod 9.0)又要來(lái)了。
下圖上谷歌官方公布的Android P發(fā)布路線圖:
Android P的最后一個(gè)開(kāi)發(fā)者預(yù)覽版(即DP5)已如期發(fā)布于2018年7月26日,根據(jù)上面這張發(fā)布路線圖,相信Android P的正式版將很快到來(lái)。對(duì)于Andriod開(kāi)發(fā)者來(lái)說(shuō),不管Andriod P有多少新功能或者特性(反正“我”用iPhone啊,哈哈),是否影響“我”擼的APP的運(yùn)行才是最要緊的事。
自從Andriod 6.0以來(lái),Android系統(tǒng)在省電管理這方面做的越來(lái)越好,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)限制也越來(lái)越多,也直接導(dǎo)致了各種保活黑科技群魔亂舞(別笑,就的就是“你”!)。但Android P官方公開(kāi)的開(kāi)發(fā)者資料來(lái)看,此版加入或強(qiáng)化的多項(xiàng)設(shè)備電量管理新特性,使得需要后臺(tái)消息推送、應(yīng)用保活的APP變的越來(lái)越困難,黑科技恐將成為歷史。
學(xué)習(xí)交流:
- 即時(shí)通訊開(kāi)發(fā)交流3群:185926912[推薦]
- 移動(dòng)端IM開(kāi)發(fā)入門文章:《新手入門一篇就夠:從零開(kāi)發(fā)移動(dòng)端IM》
(同步發(fā)布于:http://www.52im.net/thread-1832-1-1.html)
2、原先的APP為什么要搞各種保活黑科技?
其實(shí)搞保活的目的倒不是為了干什么見(jiàn)不得人的壞事(但不排除動(dòng)機(jī)不純的開(kāi)發(fā)者),主要是像IM即時(shí)通訊應(yīng)用和資訊類應(yīng)用等需要搞后臺(tái)消息推送、運(yùn)動(dòng)類應(yīng)用需要在后臺(tái)實(shí)時(shí)監(jiān)測(cè)用戶的運(yùn)動(dòng)數(shù)據(jù)等,因?yàn)楝F(xiàn)在越來(lái)越多的手機(jī)廠商為了省電策略考慮,基本上如果你的應(yīng)用沒(méi)有被加入白名單,一旦處于后臺(tái)就會(huì)被系統(tǒng)限制甚至干掉,但使用APP的用戶才不聽(tīng)你這些解釋——反正“我”就要你的APP能如期正常運(yùn)行,開(kāi)發(fā)者也是不得已而為之。
以消息推送為例,當(dāng)APP處于后臺(tái)或關(guān)閉時(shí),消息推送對(duì)于某些應(yīng)用來(lái)說(shuō)非常有用,比如:
1)IM即時(shí)通訊聊天應(yīng)用:聊天消息通知、音視頻聊天呼叫等,典型代表有:微信、QQ、易信、米聊、釘釘、Whatsup、Line;
2)新聞資訊應(yīng)用:最新資訊通知等,典型代碼有:網(wǎng)易新聞客戶端、騰訊新聞客戶端;
3)SNS社交應(yīng)用:轉(zhuǎn)發(fā)/關(guān)注/贊等通知,典型代表有:微博、知乎;
4)郵箱客戶端:新郵件通知等,典型代表有:QQ郵箱客戶端、Foxmail客戶端、網(wǎng)易郵箱大師;
5)金融支付應(yīng)用:收款通知、轉(zhuǎn)賬通知等,典型代表有:支付寶、各大銀行的手機(jī)銀行等;
.... ....
在上述的各種應(yīng)用中,尤其對(duì)于用戶接觸最多、最平常的IM聊天應(yīng)用或新聞資訊來(lái)說(shuō),保活和消息推送簡(jiǎn)直事關(guān)APP的“生死”,消息推送這種能力已經(jīng)被越來(lái)越多的APP作為基礎(chǔ)能力之一,因?yàn)橐苿?dòng)互聯(lián)網(wǎng)時(shí)代下,用戶的“全時(shí)在線”能力非常誘人和強(qiáng)大,能隨時(shí)隨地即時(shí)地將各種重要信息推送給用戶,無(wú)疑是非常有意義的。
題外話:實(shí)際上,對(duì)于后臺(tái)消息推送能力,Android原版系統(tǒng)早就內(nèi)置了系統(tǒng)級(jí)推送服務(wù)(跟iOS上的APNs服務(wù)是一個(gè)東西),它就是GCM服務(wù)(現(xiàn)在升級(jí)為FCM了),但眾所周之的原因,谷哥的服務(wù)在國(guó)內(nèi)都是用不了的(你懂的)——無(wú)奈啊!
(有關(guān)GCM的介紹詳見(jiàn):《移動(dòng)端IM實(shí)踐:谷歌消息推送服務(wù)(GCM)研究(來(lái)自微信)》、《為何微信、QQ這樣的IM工具不使用GCM服務(wù)推送消息?》、《求教android消息推送:GCM、XMPP、MQTT三種方案的優(yōu)劣》)。
3、針對(duì)以往Android版本的各種保活技術(shù)回顧
搞Android端IM和消息推送服務(wù)的開(kāi)發(fā)者都知道,Android P之前為了搞定客戶的投訴:“為什么微信能收到消息而你們的IM卻不能?”,為了解決這個(gè)“痛點(diǎn)”,廣大的Android開(kāi)發(fā)者們只能讓各種黑科技輪番上場(chǎng)、各顯神通,最典型的:比如曾今在手機(jī)QQ上的1像素保活(雖然QQ官方從沒(méi)正面承認(rèn)過(guò))、后臺(tái)無(wú)限播放無(wú)聲音的音頻、應(yīng)用互相拉活等,大家都耳熟能詳。
下面就是即時(shí)通訊網(wǎng)整理過(guò)的各種典型保活需求和思路,可以回顧學(xué)習(xí)一下:
《應(yīng)用保活終極總結(jié)(一):Android6.0以下的雙進(jìn)程守護(hù)保活實(shí)踐》
《應(yīng)用保活終極總結(jié)(二):Android6.0及以上的保活實(shí)踐(進(jìn)程防殺篇)》
《應(yīng)用保活終極總結(jié)(三):Android6.0及以上的保活實(shí)踐(被殺復(fù)活篇)》
《Android進(jìn)程保活詳解:一篇文章解決你的所有疑問(wèn)》
《Android端消息推送總結(jié):實(shí)現(xiàn)原理、心跳保活、遇到的問(wèn)題等》
《為何基于TCP協(xié)議的移動(dòng)端IM仍然需要心跳保活機(jī)制?》
《微信團(tuán)隊(duì)原創(chuàng)分享:Android版微信后臺(tái)保活實(shí)戰(zhàn)分享(進(jìn)程保活篇)》
《微信團(tuán)隊(duì)原創(chuàng)分享:Android版微信后臺(tái)保活實(shí)戰(zhàn)分享(網(wǎng)絡(luò)保活篇)》
4、國(guó)內(nèi)各種Android廠商級(jí)推送通道出現(xiàn)了
為了響應(yīng)Android原版中對(duì)省電策略、用戶體驗(yàn)等設(shè)計(jì),也為了避免各種保活亂象,國(guó)內(nèi)主流的Android手機(jī)廠商在閹割了谷歌原版的GCM(FCM)推送通道之后(悲劇!),依靠自身的技術(shù)力量構(gòu)建起來(lái)各家自有的推送通道。
下面是國(guó)內(nèi)主流Android廠商的推送服務(wù)開(kāi)發(fā)者入口:
1)小米消息推送服務(wù);
2)華為消息推送服務(wù)端(Huawei Mobile Services);
3)魅族消息推送服務(wù);
5)vivo消息推送服務(wù)(建設(shè)中..)。
看到上面這串廠商系統(tǒng)級(jí)推送通道列表,相信你已經(jīng)露出了你那排潔白的牙齒了 ^_^。。。
如果劇情都能像都市愛(ài)情小說(shuō)那樣——“男女主角從此過(guò)上了幸福美滿的生活...”,那就完美了!
但是(這個(gè)但是真的很討厭),不要高興的太早,理想情況下對(duì)接廠商通道確實(shí)很爽,但現(xiàn)實(shí)很骨感。
對(duì)接廠商通道帶來(lái)的麻煩,遠(yuǎn)比你想像的要多:
1)你得一家一家下載SDK、注冊(cè)開(kāi)發(fā)者賬號(hào)、搞手機(jī)端對(duì)接、搞服務(wù)端對(duì)接;
2)各廠商的SDK都打包在一個(gè)APP里,可能存在各種兼容性問(wèn)題;
3)因?yàn)镽OOM版本問(wèn)題,即使同一個(gè)廠商的手機(jī)的同一套SDK也存在新舊ROOM的兼容性問(wèn)題;
4)這一堆的SDK,各種jar包讓你的APP莫名變大了不少;
5)服務(wù)端要對(duì)接各種廠商的推送后臺(tái),各家的技術(shù)水平、SDK水準(zhǔn)、服務(wù)穩(wěn)定性參差不齊,對(duì)接起來(lái)難受吧;
6)有些手機(jī)小廠并沒(méi)有自已的推送通道,你自建的推送能道還不能扔。
凡此種種,對(duì)接廠商通道并不輕松。
不過(guò):如果公司不排斥使用第3方通送方案的話,現(xiàn)階段這種混亂狀況下,可以考慮直接用第3方的服務(wù),比騰訊的信鴿推送為例(首先申明,我沒(méi)收信鴿的好處費(fèi),只是舉個(gè)例子!),信鴿推送的方案也是一家一家對(duì)接第3方的廠商通道道+自有通道(《[資訊] 信鴿新版上線:號(hào)稱Android首家統(tǒng)一推送服務(wù)》),對(duì)于開(kāi)發(fā)者來(lái)說(shuō)信鴿的實(shí)現(xiàn)思路其實(shí)跟我們想的是一樣的。但好處是:別人有專門的團(tuán)隊(duì)死磕這件破事,比你自已一個(gè)人帶來(lái)的效果要好多了。
5、萬(wàn)眾矚目的“統(tǒng)一推送聯(lián)盟”上場(chǎng)了
為了解決這些亂象,好消息是去年有政府背景的“統(tǒng)一推送聯(lián)盟”成立了(詳見(jiàn)《[資訊] 統(tǒng)一推送聯(lián)盟在京成立:結(jié)束國(guó)內(nèi)安卓生態(tài)混亂》),廣大Android開(kāi)發(fā)者真是翹首以盼。
但壞消息是好像進(jìn)展并不順利(大家心知肚明啊,各廠商的利益不好均衡嘛),最近一次跟消息推送服務(wù)有關(guān)的活動(dòng)還是3個(gè)月前的《[資訊] 統(tǒng)一推送聯(lián)盟2018成員大會(huì)如期召開(kāi)》。雖然進(jìn)展不大,但總算還是有希望,Android同行們?cè)俚鹊龋傆蠥ndroid端消息推送一統(tǒng)江湖的方案出現(xiàn)的那天。
6、Andriod P要來(lái)了,噩夢(mèng)仍將繼續(xù)!
Android P中針對(duì)省是管理方面的改進(jìn),只會(huì)使得搞后臺(tái)保活、消息推送越來(lái)越麻煩,作為Android開(kāi)發(fā)者來(lái)說(shuō),了解這些新特性至少能讓自已心里有底,從而在技術(shù)上做到有的放矢。
Android P中電量管理特性主要體現(xiàn)在以下四個(gè)方面:
1)應(yīng)用待機(jī)分組:Android P 新增應(yīng)用待機(jī)分組功能,讓系統(tǒng)根據(jù)用戶的使用情況而限制應(yīng)用調(diào)用 CPU 或網(wǎng)絡(luò)等設(shè)備資源;
2)應(yīng)用后臺(tái)限制:Android P新增后臺(tái)限制功能,若應(yīng)用出現(xiàn) Android Vitals 內(nèi)所描述的不良行為,系統(tǒng)將提醒用戶限制該應(yīng)用訪問(wèn)設(shè)備資源;
3)省電模式優(yōu)化:Android P 優(yōu)化了現(xiàn)有的省電助手功能,在啟用該功能后,系統(tǒng)將對(duì)所有應(yīng)用的后臺(tái)運(yùn)行實(shí)施加以限制;
4)低耗電模式:當(dāng)用戶一段時(shí)間沒(méi)有使用設(shè)備時(shí),設(shè)備將進(jìn)入低耗電模式,所有應(yīng)用都將受到影響。 Android P 并未針對(duì)低電耗模式作出任何更改。
*注意:不論應(yīng)用程序的 target SDK 是否為 Android P ,所有應(yīng)用都受限于以上行為變更。
接下來(lái)將逐一介紹這幾個(gè)特性。
7、Andriod P電量管理特性1:應(yīng)用待機(jī)分組
應(yīng)用待機(jī)分組是 Android P 新添加的一項(xiàng)電量管理功能,它能根據(jù)應(yīng)用的使用頻率或者最近一次使用時(shí)間,對(duì)其資源請(qǐng)求進(jìn)行優(yōu)先級(jí)排序。應(yīng)用待機(jī)分組一共有五個(gè)分組,系統(tǒng)會(huì)根據(jù)每個(gè)應(yīng)用的使用情況,將其劃分至五個(gè)優(yōu)先分組中的一個(gè),而每個(gè)分組對(duì)設(shè)備資源的調(diào)度各有不同的限制。
7.1 優(yōu)先分組
系統(tǒng)將動(dòng)態(tài)分配各個(gè)應(yīng)用至不同分組,并根據(jù)需求重新分配所在分組。系統(tǒng)或會(huì)通過(guò)利用機(jī)器學(xué)習(xí)預(yù)加載的應(yīng)用,從而預(yù)測(cè)各個(gè)應(yīng)用的使用概率,然后將它們編配至相應(yīng)的群組中。若設(shè)備中沒(méi)有安裝此類系統(tǒng)應(yīng)用,在默認(rèn)情況下,系統(tǒng)會(huì)根據(jù)應(yīng)用的近期使用情況進(jìn)行等級(jí)劃分。應(yīng)用活躍度越高,所處分組的優(yōu)先級(jí)就越高,也就相應(yīng)地更容易獲取設(shè)備資源。尤其是,應(yīng)用所處的的群組決定了其所安排的任務(wù) (job),觸發(fā)標(biāo)準(zhǔn)鬧鈴以及接受高優(yōu)先級(jí)Firebase Cloud Messagesing信息的頻率。這些限制僅在非充電狀態(tài)下才有效;當(dāng)設(shè)備充電時(shí),應(yīng)用并不會(huì)受到系統(tǒng)限制。
*注意:設(shè)備廠商可以自行規(guī)定非活躍應(yīng)用的群組劃分規(guī)則。請(qǐng)開(kāi)發(fā)者不要試圖篡改應(yīng)用所處的群組,而是專注于改善應(yīng)用行為,確保應(yīng)用被劃分至目標(biāo)群組后,依舊能夠順利運(yùn)行。您可以調(diào)用 UsageStatsManager.getAppStandbyBucket(),查看應(yīng)用當(dāng)下所處群組。
應(yīng)用待機(jī)模式下共有以下五類群組:
1)活躍 (Active): 應(yīng)用正在被使用;
2)工作 (Working set): 應(yīng)用使用頻率很高;
3)常用 (Frequent): 應(yīng)用經(jīng)常但不是每天被使用;
4)極少 (Rare): 應(yīng)用偶爾被使用;
5)應(yīng)用偶爾被使用 (App is not frequently used)。
此外,安裝后一次都未被使用過(guò)的應(yīng)用將被劃分至 “從不” 這一特殊群組,并受到十分嚴(yán)格的系統(tǒng)限制。
*注意:應(yīng)用待機(jī)群組限制不適用于低耗電模式白名單中的應(yīng)用。
7.2 活躍 (Active)
活躍應(yīng)用指用戶正在使用的應(yīng)用,例如:
1)應(yīng)用啟動(dòng)了一個(gè)Activity;
2)應(yīng)用正在運(yùn)行前臺(tái)服務(wù);
3)另一個(gè)前臺(tái)應(yīng)用已關(guān)聯(lián)至該應(yīng)用 (通過(guò)同步適配器與前臺(tái)應(yīng)用的內(nèi)容提供器相關(guān)聯(lián));
4)用戶點(diǎn)擊了應(yīng)用的推送。
在任務(wù)、標(biāo)準(zhǔn)鬧鈴以及FCM信息的資源調(diào)用上,活躍群組應(yīng)用免受任何系統(tǒng)限制。
7.3 工作 (Working set)
若應(yīng)用的運(yùn)行頻率很高,但目前并未處于“活躍”狀態(tài),它就會(huì)被劃分至工作群組,例如用戶常用的社交媒體應(yīng)用。此外,該群組還包括了那些被間接使用的應(yīng)用。
工作分組內(nèi)的應(yīng)用會(huì)在任務(wù) (job) 運(yùn)行和鬧鈴觸發(fā)方面受到部分系統(tǒng)限制,詳情請(qǐng)查閱《附件: 電量管理限制》。
7.4 常用 (Frequent)
常用應(yīng)用指用戶經(jīng)常使用但不是每天使用的應(yīng)用,比如用戶在健身房使用的打卡應(yīng)用可能就屬于這一群組。
系統(tǒng)對(duì)常用分組采用的限制更強(qiáng),應(yīng)用運(yùn)行任務(wù)(job)和觸發(fā)鬧鈴的能力都會(huì)受到影響,而且接受的高優(yōu)先性FCM消息也有數(shù)量上限,詳情請(qǐng)查閱《附件:電量管理限制》。
7.5 極少 (Rare)
若應(yīng)用的使用頻率很低,它就會(huì)被劃分至該分組,酒店應(yīng)用就是一個(gè)很好的例子——用戶只有在下榻這個(gè)酒店的時(shí)候才會(huì)打開(kāi)此應(yīng)用。
該群組下的應(yīng)用在任務(wù) (job)、鬧鈴和高優(yōu)先性FCM消息的資源調(diào)用上都會(huì)受到嚴(yán)格的限制。此外,網(wǎng)絡(luò)訪問(wèn)能力也會(huì)受到影響。詳情請(qǐng)閱讀《附件:電量管理限制》。
7.6 最佳實(shí)踐建議
如果您已經(jīng)根據(jù)低耗電模式和應(yīng)用待機(jī)模式的最佳實(shí)踐對(duì)您的應(yīng)用進(jìn)行過(guò)相關(guān)優(yōu)化,您應(yīng)該能夠輕松應(yīng)對(duì)新的電量管理特性。不過(guò),部分應(yīng)用行為可能會(huì)受到此次特性變更的影響,無(wú)法繼續(xù)正常運(yùn)作。
1)請(qǐng)勿嘗試操控系統(tǒng)將您的應(yīng)用分配至某一特定群組。系統(tǒng)的分組規(guī)則可能會(huì)發(fā)生變化,而且設(shè)備廠商也可以根據(jù)自己的算法自行開(kāi)發(fā)分組應(yīng)用。開(kāi)發(fā)者需要確保自己的應(yīng)用在任何群組內(nèi)都能夠繼續(xù)流暢運(yùn)行。
2)如果應(yīng)用沒(méi)有 Launcher Activity,它可能永遠(yuǎn)都不會(huì)切換至活躍分組。開(kāi)發(fā)者可能需要重新設(shè)計(jì)應(yīng)用并添加此類activity。
3)如果應(yīng)用的推送不具備可操作性,用戶將無(wú)法借助與推送的交互將應(yīng)用切換至活躍群組。在這種情況下,開(kāi)發(fā)者可考慮重新設(shè)計(jì)推送功能,允許用戶響應(yīng)。具體操作指南,請(qǐng)參照 Material Design 中有關(guān)推送設(shè)計(jì)的章節(jié)。
4)若應(yīng)用在接受高優(yōu)先級(jí)的 FCM 消息之后未能發(fā)送推送,用戶將無(wú)法與應(yīng)用產(chǎn)生互動(dòng)并將其優(yōu)先級(jí)提升至 “活躍” 等級(jí)。其實(shí),高優(yōu)先級(jí) FCM 消息的唯一用途就是向用戶發(fā)送推送,因此這種情況絕對(duì)不應(yīng)該出現(xiàn)。如果您錯(cuò)誤的將沒(méi)有與用戶進(jìn)行互動(dòng)的 FCM 消息設(shè)置為高優(yōu)先級(jí),這種標(biāo)記不當(dāng)?shù)男袨榭赡軙?huì)導(dǎo)致其他不良后果,比如:在應(yīng)用耗盡高優(yōu)先級(jí)消息額度之后,系統(tǒng)會(huì)把真正緊急的 FCM 消息當(dāng)做“普通優(yōu)先級(jí)”消息來(lái)處理。
*注意:如果用戶多次忽略某條推送,系統(tǒng)會(huì)詢問(wèn)用戶是否不再接受此推送。請(qǐng)開(kāi)發(fā)者不要只是為了將應(yīng)用保留在活躍群組,而向用戶不斷發(fā)送推送。如果一個(gè)應(yīng)用下面有多個(gè)包,這些包可能分別屬于不同分組,各自的訪問(wèn)權(quán)限也有所不同。在測(cè)試環(huán)節(jié)時(shí),請(qǐng)開(kāi)發(fā)者先將包劃分至不同分組,然后進(jìn)行多次測(cè)試,確保應(yīng)用行為無(wú)異常。
8、Andriod P電量管理特性2:后臺(tái)限制
當(dāng)系統(tǒng)監(jiān)測(cè)到應(yīng)用消耗過(guò)多資源時(shí),系統(tǒng)會(huì)通知并詢問(wèn)用戶是否需要限制該應(yīng)用的后臺(tái)活動(dòng)。
目前有以下兩種情況會(huì)觸發(fā)系統(tǒng)發(fā)送此通知:
1)頻繁使用喚醒鎖 (wake locks):屏幕關(guān)閉后,局部喚醒鎖 (Partial wake lock) 連續(xù)開(kāi)啟 1 小時(shí);
2)過(guò)多的后臺(tái)服務(wù):當(dāng)應(yīng)用目標(biāo) API 等級(jí)低于 26,且運(yùn)行過(guò)多后臺(tái)服務(wù)。
設(shè)備廠商可自行決定具體采用的限制,比如:在 AOSP 構(gòu)建上,除非受限應(yīng)用運(yùn)行在前臺(tái),否則它將無(wú)法運(yùn)行任務(wù) (job),觸發(fā)鬧鈴或者訪問(wèn)網(wǎng)絡(luò)。(請(qǐng)查閱《后臺(tái)服務(wù)限制》了解如何判斷應(yīng)用是否為前臺(tái)運(yùn)行。) 詳細(xì)限制列表,請(qǐng)查閱《附件:電量管理限制》。
9、Andriod P電量管理特性3:省電助手優(yōu)化
Android P 進(jìn)一步提升了省電模式的性能,由設(shè)備廠商來(lái)決定其采用的具體限制。
比如:在AOSP構(gòu)建上存在以下系統(tǒng)限制:
1)應(yīng)用將更容易進(jìn)入待機(jī)模式,系統(tǒng)不會(huì)一直等到應(yīng)用處于“空閑”狀態(tài)才采取行行動(dòng);
2)不論目標(biāo)API等級(jí)為何,所有應(yīng)用都會(huì)受到后臺(tái)執(zhí)行限制;
3)屏幕關(guān)閉后,位置服務(wù)可能被禁用;
4)處于后臺(tái)的應(yīng)用不能訪問(wèn)網(wǎng)絡(luò)。
除此以外,Android P 還引入了多項(xiàng)針對(duì)設(shè)備的電量管理的優(yōu)化,請(qǐng)閱讀《附件:電量管理限制》獲取進(jìn)一步信息。
建議開(kāi)發(fā)者在開(kāi)啟省電模式的情況下測(cè)試應(yīng)用,您可在 Settings > Battery Saver 內(nèi)手動(dòng)開(kāi)啟省電模式:
10、Andriod P電量管理特性4:低耗電模式
在低耗電模式下,應(yīng)用對(duì)高耗電資源的使用權(quán)限將被推遲至下一個(gè)維護(hù)時(shí)段。具體限制請(qǐng)參照《附件:電量管理限制》。
進(jìn)一步信息,請(qǐng)查閱《對(duì)低耗電模式和應(yīng)用待機(jī)模式進(jìn)行針對(duì)性優(yōu)化》。
11、本文小結(jié)
對(duì)于開(kāi)發(fā)者來(lái)說(shuō),Android平臺(tái)向來(lái)以“亂”著稱,后臺(tái)保活和消息推送從各種黑科技,到廠商紛紛自建通道,再到統(tǒng)一推送聯(lián)盟。時(shí)至今日,該面對(duì)的問(wèn)題依然沒(méi)有改觀,隨著Android P正式版的發(fā)布,對(duì)于IM、消息推送服務(wù)等開(kāi)發(fā)者來(lái)說(shuō),個(gè)人英雄主義式的技術(shù)黑科技越來(lái)越?jīng)]有發(fā)揮的空間,從長(zhǎng)遠(yuǎn)來(lái)講這是好事。
隨著時(shí)間的推進(jìn),分久必合的局面終將出現(xiàn),Android平臺(tái)也必將越來(lái)越規(guī)范,Android P這樣版本只是這前進(jìn)過(guò)程中的陣痛,希望廣大Android開(kāi)發(fā)者在Android技術(shù)進(jìn)步的福利下能越來(lái)越輕松,再也不用“開(kāi)大招”琢磨各種非主流黑科技了。
附錄:更多相關(guān)技術(shù)文章
《iOS的推送服務(wù)APNs詳解:設(shè)計(jì)思路、技術(shù)原理及缺陷等》
《信鴿團(tuán)隊(duì)原創(chuàng):一起走過(guò) iOS10 上消息推送(APNS)的坑》
《Android端消息推送總結(jié):實(shí)現(xiàn)原理、心跳保活、遇到的問(wèn)題等》
《掃盲貼:認(rèn)識(shí)MQTT通信協(xié)議》
《一個(gè)基于MQTT通信協(xié)議的完整Android推送Demo》
《IBM技術(shù)經(jīng)理訪談:MQTT協(xié)議的制定歷程、發(fā)展現(xiàn)狀等》
《求教android消息推送:GCM、XMPP、MQTT三種方案的優(yōu)劣》
《移動(dòng)端實(shí)時(shí)消息推送技術(shù)淺析》
《掃盲貼:淺談iOS和Android后臺(tái)實(shí)時(shí)消息推送的原理和區(qū)別》
《絕對(duì)干貨:基于Netty實(shí)現(xiàn)海量接入的推送服務(wù)技術(shù)要點(diǎn)》
《移動(dòng)端IM實(shí)踐:谷歌消息推送服務(wù)(GCM)研究(來(lái)自微信)》
《為何微信、QQ這樣的IM工具不使用GCM服務(wù)推送消息?》
《極光推送系統(tǒng)大規(guī)模高并發(fā)架構(gòu)的技術(shù)實(shí)踐分享》
《從HTTP到MQTT:一個(gè)基于位置服務(wù)的APP數(shù)據(jù)通信實(shí)踐概述》
《魅族2500萬(wàn)長(zhǎng)連接的實(shí)時(shí)消息推送架構(gòu)的技術(shù)實(shí)踐分享》
《專訪魅族架構(gòu)師:海量長(zhǎng)連接的實(shí)時(shí)消息推送系統(tǒng)的心得體會(huì)》
《基于WebSocket實(shí)現(xiàn)Hybrid移動(dòng)應(yīng)用的消息推送實(shí)踐(含代碼示例)》
《一個(gè)基于長(zhǎng)連接的安全可擴(kuò)展的訂閱/推送服務(wù)實(shí)現(xiàn)思路》
《實(shí)踐分享:如何構(gòu)建一套高可用的移動(dòng)端消息推送系統(tǒng)?》
《Go語(yǔ)言構(gòu)建千萬(wàn)級(jí)在線的高并發(fā)消息推送系統(tǒng)實(shí)踐(來(lái)自360公司)》
《騰訊信鴿技術(shù)分享:百億級(jí)實(shí)時(shí)消息推送的實(shí)戰(zhàn)經(jīng)驗(yàn)》
《百萬(wàn)在線的美拍直播彈幕系統(tǒng)的實(shí)時(shí)推送技術(shù)實(shí)踐之路》
《京東京麥商家開(kāi)放平臺(tái)的消息推送架構(gòu)演進(jìn)之路》
《了解iOS消息推送一文就夠:史上最全iOS Push技術(shù)詳解》
《基于APNs最新HTTP/2接口實(shí)現(xiàn)iOS的高性能消息推送(服務(wù)端篇)》
>> 更多同類文章 ……
(同步發(fā)布于:http://www.52im.net/thread-1832-1-1.html)
作者:Jack Jiang (點(diǎn)擊作者姓名進(jìn)入Github)
出處:http://www.52im.net/space-uid-1.html
交流:歡迎加入即時(shí)通訊開(kāi)發(fā)交流群 215891622
討論:http://www.52im.net/
Jack Jiang同時(shí)是【原創(chuàng)Java
Swing外觀工程BeautyEye】和【輕量級(jí)移動(dòng)端即時(shí)通訊框架MobileIMSDK】的作者,可前往下載交流。
本博文
歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處(也可前往 我的52im.net 找到我)。