Jack Jiang

          我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
          posts - 499, comments - 13, trackbacks - 0, articles - 1

          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)題等

          深入的聊聊Android消息推送這件小事

          為何基于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ò)保活篇)

          移動(dòng)端IM實(shí)踐:實(shí)現(xiàn)Android版微信的智能心跳機(jī)制

          移動(dòng)端IM實(shí)踐:WhatsApp、Line、微信的心跳策略分析

          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ù)

          4)OPPO消息推送服務(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ì)

          深入的聊聊Android消息推送這件小事

          基于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 找到我)。


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
          主站蜘蛛池模板: 贺州市| 临漳县| 高唐县| 江源县| 西乌珠穆沁旗| 仁怀市| 义乌市| 二连浩特市| 浑源县| 金川县| 库尔勒市| 黔南| 五家渠市| 元江| 赞皇县| 怀安县| 连南| 澄江县| 沁阳市| 荥阳市| 凤阳县| 抚远县| 兴业县| 嵊泗县| 巴彦县| 东丽区| 改则县| 灵武市| 中方县| 奇台县| 京山县| 济宁市| 永新县| 彝良县| 桦川县| 宜宾县| 民乐县| 桐庐县| 延津县| 浦北县| 贵州省|