首頁 > 遊戲

煩人的安卓推送終於有治了

由 機智貓 發表于 遊戲2021-06-13

簡介和 安卓的FCM 一樣,它有專門的伺服器將來自各個應用的資訊中轉到使用者手機上,使用者手機的後臺只需要執行這一個推送服務,就能收到無數應用的推送訊息

推送通知是什麼意思

成立於2017年底的統一推送聯盟(Unified Push Alliance)是由國家工信部牽頭,由中國資訊通訊研究院泰爾終端實驗室倡導,聯合了華為、OPPO、vivo、小米等多家國產智慧手機品牌聯合成立的“安卓統一推送聯盟”。

煩人的安卓推送終於有治了

這家機構成立的初衷就是為了解決你手機上的應用推送服務問題。在最近,統一推送聯盟又傳出新的進展:

25日,統一推送聯盟官方宣佈,已收到華為技術有限公司、廣東歐珀行動通訊有限公司、深圳市萬普拉斯科技有限公司、深圳市銳爾覓行動通訊有限公司四家公司的的進度確認,均已經按照聯盟標準《T-UPA0002-2019統一推送介面層規範》最新版本,完成了開發工作。這意味著,符合聯盟標準的統一推送服務,將覆蓋華為、榮耀、OPPO、realme、一加五個品牌的手機。

煩人的安卓推送終於有治了

這樣做的後續會對我們產生怎樣的影響?

什麼是推送?

這是需要弄明白的第一個問題。

這個問題很簡單,我們當前使用的智慧手機隨時隨地都可能會收到來自應用的訊息推送。比如大家日常最常用到的微信。當你收到朋友發過來的微信訊息時,手機就會彈出訊息通知,這條訊息其實就是經過你手機相應的推送機制推送過來的資訊。

煩人的安卓推送終於有治了

需要注意的是,推送資訊其實是在手機沒有開啟應用,甚至是應用都沒有在後臺常駐的情況下收到的。要做到這一點,其實背後就牽涉到手機的資訊推送原理。

如果你使用的是iPhone,這套資訊推送機制名為APNs(Apple Push Notification service)中文翻譯為:蘋果推送通知服務。它的主要工作原理是:

煩人的安卓推送終於有治了

前期應用程式申請訊息推送服務,你的裝置會向APNs伺服器傳送註冊請求;APNs伺服器接受請求,並將deviceToken返給你裝置上的應用程式 ;客戶端應用程式將deviceToken傳送給後臺伺服器程式,後臺接收並儲存;後臺伺服器向APNs伺服器傳送推送訊息 ; APNs伺服器將訊息發給deviceToken對應裝置上的應用程式。

煩人的安卓推送終於有治了

看起來比較複雜,其實很好理解:使用者傳送資訊給你,應用就會將這條資訊的提醒內容推送到蘋果的伺服器端,再由蘋果的伺服器中轉發送到微信目標使用者。於是,你的手機上就會彈出資訊通知。換句話說,Apple的伺服器在其中扮演了一箇中繼站的角色。

APNs的好處是能夠使得應用在未喚醒的條件下,就能實現資訊推送,避免了應用常駐後臺帶來的功耗,應用程式也不用隨時保持網路連線,同時也不用安裝額外的SDK。

安卓生態混亂的推送機制

那麼安卓手機的推送機制是怎麼樣的呢?其實原理大致和蘋果的APNs差不多,但卻存在一系列的現實問題。

煩人的安卓推送終於有治了

目前安卓的推送服務名為GCM(Google Cloud Messaging),譯為Google雲端通訊。它能夠讓第三方應用的開發者把通知訊息或資訊從伺服器傳送到所有使用這個應用的安卓系統或Chrome瀏覽器的應用或拓展上。(需要說明的是,在2016年的I/O大會上,谷歌推出了全新服務Firebase,並啟用了FCM(Firebase Cloud Messaging)推送服務。根據谷歌的計劃,FCM服務將替代GCM,二者在核心工作原理上類似)。

但問題是,由於眾所周知的原因,包括FCM在內的一系列谷歌服務在國內並不能正常使用,要想實現國產安卓手機的資訊推送就不得不想其他的辦法。具體來說,目前國內安卓生態的資訊推送機制大概有三種。

煩人的安卓推送終於有治了

第一種就是應用自身單獨建立推送服務。採用這種做法的是微信、QQ等這類具備自己搭建伺服器,建立訊息推送渠道能力的超級應用。由於這類即時通訊類應用對於資訊及時推送的需求更加迫切,所以他們背後的廠商花了很大的代價去建立推送渠道。日常工作時,系統後臺需要駐留一個推送服務,便可實現相應的實時的資訊推送。而對於這類使用者數量龐大的超級應用,大多數的系統都會放寬其常駐後臺的許可權,確保不會被系統清理掉程序。

煩人的安卓推送終於有治了

第二類就是手機廠商搭建的訊息推送服務。在國內目前出貨量排名靠前的手機廠商都在自家的定製化UI上做了一套和FCM類似的資訊推送機制,比如小米的MiPush,華為的HMS 等等。和 安卓的FCM 一樣,它有專門的伺服器將來自各個應用的資訊中轉到使用者手機上,使用者手機的後臺只需要執行這一個推送服務,就能收到無數應用的推送訊息。

但問題是,對於開發者來說面對不同手機品牌建立的推送機制,開發者就需要在應用內加入不同的SDK。這樣一來,就面臨應用臃腫,後期升級維護麻煩等問題。尤其是對於一些小的開發者來說,針對不同的品牌做應用匹配並不現實。

煩人的安卓推送終於有治了

第三類是藉助第三方的資訊推送平臺,比如國內的極光、友盟等等。有的個人開發者沒有足夠的精力給自己的應用做訊息推送。於是他們接入一個具備分享、訊息推送等功能SDK,就能實現資訊推送功能。

這樣做雖然省事,但對使用者並不是很友好。很多時候,這類應用會相互喚醒其他應用了同樣SDK 的應用,導致大量的應用程序在後臺被喚醒、駐留。另外這些第三方的SDK由於缺少手機廠商的支援,其停留在後臺的服務很容易被系統被幹掉,導致訊息推送的不及時。

如此一來,對於國內安卓使用者而言,我們手機上安裝的應用可能會存在不用的資訊推送機制。這些應用之間由於資訊推送機制的不規範,往往存在交叉喚醒、鏈式啟動的現象,於是我們的手機就變得更加耗電和卡頓。

煩人的安卓推送終於有治了

試想一下,如果你的手機裝了BAT的APP,也裝了其他第三方的APP。你的手機為了實現即時資訊的推送,就需要保持和騰訊、阿里、百度伺服器的連線,同時還要保持其他第三方伺服器的連線。為了保證能把訊息及時推送,很多APP就在後臺保持活躍。

在維持如此多長連線和APP活躍的情況下,要想實現手機不卡頓就只能加大手機的運存以及提升手機的硬體效能,比如電池容量以及處理器效能等等。

而在原生安卓以及iOS上,手機只需要保持和谷歌、蘋果的伺服器連結就可以了。

聯盟建立的作用

這麼看來,國產安卓生態其實一直都缺乏一個統一的資訊推送平臺。統一推送聯盟(Unified Push Alliance)的建立其實就是為了建立一個這樣的平臺。

煩人的安卓推送終於有治了

為了給手機使用者提供更好的使用體驗,統一推送聯盟聯合「Android 綠色應用公約」倡議網際網路服務提供商和 APP 獨立開發者未來採用統一推送的解決方案,並放棄非必要後臺行為,包括:

不在啟動應用時強制請求『讀取手機狀態和身份(READ_PHONE_STATE)』許可權。

App限制交叉喚醒、鏈式啟動。除使用者的主動互動觸發外,避免啟動其它應用未處於執行中的程序。

App讓裝置CPU儘可能處於休眠狀態,請求喚醒CPU的週期性任務時間間隔儘可能大於1小時,並避免在不必要的時間段(如夜間)繼續排程週期性事件。

App避免不必要常駐後臺的行為。在應用進入後臺的短時間內須停止所有後臺服務,且在除了收到廣播和正常觸發的後臺行為期間不可以再啟動新的後臺服務。

在公佈的《統一推送技術要求和測試方法》檔案中,統一推送聯盟提出了對各終端廠商制定推送基本技術指標和測試方法的要求。

如空載流量應小於 300kB/日、空載功耗應小於 40mAh/日,前者是指終端接入資料網路(不包括 Wi-Fi)且推送通道待機狀態下,無訊息推送時,流量消耗大小;後者指終端在熄屏條件下,接入資料網路,無推送訊息時,推送服務消耗的功耗。

煩人的安卓推送終於有治了

一個統一、規範的推送平臺的建立,對於各方來說都是有利的。應用開發商、手機廠商省去了自建資訊推送機制的建設和維護成本。個人開發者能夠減少應用開發和維護的工作量,降低應用開發成本。而對於消費者而言,手機後臺不用駐留那麼多各式各樣的服務和應用,也能有效避免一些流氓應用為了保持活躍度而頻繁喚醒而造成的手機卡頓、耗電量激增等問題,改善了國內安卓使用者的手機使用體驗。

煩人的安卓推送終於有治了

需要注意的是,在統一推送聯盟的官網會員單位中我們可以看到谷歌公司也位列其中。很明顯,谷歌也參與到了這次推送聯盟的組建之中來。在國內安卓生態的基礎上建立統一平臺這件事情上,谷歌的經驗和技術值得借鑑和學習。此外,平臺建立之後能一定程度上改善國內安卓系統的使用體驗,谷歌自然也樂見其成。

那麼什麼時候能夠正式用上採用統一推送標準的應用呢?

從聯盟公佈的時間表來看,2019 年 3 月 1 日將開始統一推送標準符合性測試,2019 年 12 月 31 日開始相容現有各推送通道的統一推送標準。也就是說,明年我們國內的主流手機應用有望用上統一推送聯盟的推送服務。

前面我們提到,包括華為、OPPO、一加、Realme在內的國產手機廠商已經完成了前期開發工作。接下來,其他的手機廠商也必將持續跟進。聯盟也表示,後續將持續跟蹤並公佈廠商統一推送服務上線情況及具體接入方案,並對統一推送的實網效能開展測試。

從本質上看,安卓生態目前存在的一系列問題本質上還是因為其開源特性所天生具備的碎片化和不規範問題所導致。尤其是在國內完全不同的市場環境下,這樣的問題越發明顯。由國家相關部門牽頭,聯合各行業巨頭共同建立起一套完整、統一的行業規範是很有必要的。或許未來我們還將看到更多類似平臺或者準則的建立,很多目前存在的安卓生態問題將得到規範,安卓使用者長期詬病的問題也將得到進一步緩解。

Tags:推送應用安卓手機後臺