每日最新頭條.有趣資訊

乾得漂亮!終於解決安卓手機卡頓和推送的問題了!

前段時間,《中國綠色 App 公約》開始了全面推廣。

一直以來,安卓手機在國內的市場佔有率都非常高,但是有些體驗上卻並不算好。儘管各大手機廠商在硬體上都不斷努力突破,但是在軟體體驗上,尤其是第三方軟體的體驗上,手機廠商卻難以統一管理。這個《中國綠色 App 公約》解決的就是多年以來困擾國內安卓第三方軟體的權限和推送的問題。

中國綠色app公約

那這個公約真的能解決問題嗎?安卓的軟體問題又主要是有什麽導致的?

安卓的信息推送為什麽如此混亂?

在 iOS 上,蘋果的 Apple 推送通知服務(Apple Push Notification Service)託管了 iOS 平台下的應用消息推送。也就是說,某個想要發送推送消息通知的 App 即使沒有常駐後台也能通過 Apple 的伺服器進行信息推送。這樣能夠讓手機的硬體資源得到更好的控制,提升手機的體驗和續航。

安卓卡頓

安卓在國外其實也有一套對應的推送服務,谷歌的推送服務名叫「Google 雲消息傳遞(Google Cloud Messaging,即 GCM)」,在 2014 年收購 Firebase 之後升級成為「Firebase 雲消息傳遞(Firebase Cloud Messaging,即 FCM)」。

中國綠色App公約

換句話說,谷歌也是有自家的信息推送服務的,但是由於谷歌在國內的一系列問題,導致國內的安卓手機廠商往往都會直接精簡掉安卓內的所有谷歌服務,而其中包含的統一推送服務也被一並去除。

這就導致了國內安卓手機 App 想要發送推送信息就無法依靠手機系統,轉而依靠軟體自身提供。而軟體想要推送信息需要的就是「常駐手機後台」且「不被殺進程」,而大量的手機軟體在後台運行就會導致手機負荷量增大、並導致手機的處理速度和續航下降。

另外,大型互聯網公司旗下也都有各自的推送服務,例如騰訊就有「騰訊信鴿推送」、百度有「百度雲推送」、阿里巴巴有「阿里雲移動推送」等等,這些使用統一推送平台的軟體都會讓旗下的軟體互相喚醒,讓共用的推送通道保持活躍,從而不被系統殺死。而最終的結果就是臭名昭著的「全家桶」。

中國綠色App公約

中國綠色App公約

中國綠色App公約

除去大公司,還有很多第三方公司提供類似的推送服務,比如個推、極光推送、蝴蝶推送、友盟的 U-Push 等等,這些推送都能夠幫助國內的安卓手機 App 完成信息推送服務,但是和前面提到的騰訊信鴿之類的相同,一台手機內使用相同推送服務的軟體也會互相喚醒。

中國綠色App公約

中國綠色App公約

《公約》能夠解決推送問題嗎?

國內安卓 App 的問題不是沒人不想解決,相反的是,國內的手機廠商們似乎都想解決這個問題。

目前國內的大部分手機廠商都有自己的推送服務:小米有「MI Push」、華為系有「華為推送服務」、OPPO 有「OPPO 推送平台」、vivo 有「vivo 消息推送服務」、魅族有「魅族消息推送服務」等等。

中國綠色App公約

中國綠色App公約

中國綠色App公約

中國綠色App公約

中國綠色App公約

這些手機廠商推出的推送服務都能夠比較好的解決上面提到的第三方服務中相互喚醒的缺陷,但是這對於第三方軟體開發者就變成了一場噩夢:想要達成理想中的效果,軟體在開發之後還要適配所有手機廠商的推送服務,這對軟體開發者是一個幾乎不可能完成的任務;而如果隻適配單一平台的推送,那在其他品牌的手機上依舊還是老樣子,依靠常駐系統後台完成推送。

綜上所述,目前國內安卓 App 信息推送的最大問題還是出在沒有一個像 APNs 或者是 FCM 一樣的統一推送信息管理伺服器,無法實現安卓平台推送信息的集中管理。

就在這樣的一個環境下,2017 年由工信部牽頭,國內眾多手機廠商和軟體上參與的「安卓統一推送聯盟」成立了。這個名字起得比較直白,基本表達了這個聯盟要解決的所有事情 —— 國內安卓手機的信息推送問題。

中國綠色App公約

這個聯盟由工信部旗下的泰爾實驗室主導,與參與的企業共同定製統一的推送服務 UPS(Unified Push Service),這個服務有望成為國內安卓廠商 FCM 的替代品。經過了一年多的努力,今年的 1 月 7 日,統一推送聯盟發布了《統一推送時間表》,預計在今年年底,現有各推送通道就可以兼容統一推送標準。

中國綠色App公約

而文章開頭提到的《中國綠色 App 公約》則是在軟體層面上對 App 提出了要求,目前官網上的規章條陳和綠色守護和 App So 聯合推出的《Android 綠色應用公約》非常類似,但是要求更低一些:

· 嚴格遵守國家的各項法律法規,積極進行內容審核和把控,切實踐行社會主義核心價值觀。值得一提的是《Android 綠色應用公約》中的第一條則是「完全遵照 Android 本身的演進方向」。

· Target SDK Version 最低要求 24,也就是說要符合 Android 7 的安全標準。Android 7 的低電量模式和應用待機模式都有比較高的要求;而《Android 綠色應用公約》中要求的則是符合 安卓 8 的安全標準,基本取消了 App「自啟動」。

· 不在啟動應用時強製請求「讀取手機狀態和身份(READ_PHONE_STATE)」權限。

中國綠色App公約

中國綠色App公約

中國綠色App公約

· 除用戶的主動互動觸發外,避免啟動其它應用未處於運行中的進程。這一條是針對交叉喚醒和鏈式喚醒。

· 除文件管理類應用之外,在 Android 5.0 及以上版本的設備中,避免使用『讀取/寫入外部存儲(READ / WRITE_EXTERNAL_STORAGE)』權限。

· 使用請求喚醒 CPU 的周期性任務,對使用時間有限制,並且避免在「不必要的時間段(比如夜間)」繼續調用。這樣能夠適當延長手機在休眠時間段的續航。這一點是在 Android 9 中重點優化的項目。

中國綠色App公約

根據目前的信息,原本應該在 4 月 3 日推出的《中國綠色 App 公約》草案並沒有及時更新,統一推送聯盟的官網上也沒有新信息的出現,畢竟這項服務中牽扯的利益點眾多,想要調和各方的利益訴求可能也需要一定時間。

中國綠色App公約

希望即使谷歌不在,我們希望能享受通過這個 UPS 來體會一下原生安卓的流暢效果,也能幫助開發者節約開發時間和開發成本,最重要的是這個公約能夠限制目前混亂的安卓生態現狀,對於未來的安卓生態環境的維護建設都會有非常大的好處。

(本文轉載自:愛否科技)

獲得更多的PTT最新消息
按讚加入粉絲團