如今,統(tǒng)一推送聯(lián)盟聯(lián)合 Android 綠色應(yīng)用公約在統(tǒng)一推送聯(lián)盟 2018 年全體成員大會上共同發(fā)布新版綠色應(yīng)用公約。
綠色應(yīng)用公約倡議 app 開發(fā)者采用統(tǒng)一推送的解決方案,放棄非必要后臺行為。首批已有 36 個(gè) app 主動響應(yīng)并明確表示支持,目前愛范兒和 AppSo 均在列。
綠色應(yīng)用公約是一個(gè)開放性的公約,它能發(fā)揮最大影響的前提是首先得到足夠多用戶的關(guān)注,才能影響眾多開發(fā)者。
AppSo 作為國內(nèi)為數(shù)不多長期關(guān)注應(yīng)用生態(tài)的高質(zhì)量媒體,在此前也對 Android 生態(tài)中的諸多問題作過很多宣傳,讀者群體也普遍對這些問題有強(qiáng)烈的關(guān)注和認(rèn)同。
新版綠色應(yīng)用公約從用戶隱私和用戶體驗(yàn)兩個(gè)方面進(jìn)行了約束,下面對具體技術(shù)要求進(jìn)行簡單解讀。
不在啟動應(yīng)用時(shí)強(qiáng)制請求「讀取手機(jī)狀態(tài)和身份(READ_PHONE_STATE)」權(quán)限。
解讀:IMEI 是手機(jī)在蜂窩網(wǎng)絡(luò)通信中用以唯一識別終端的關(guān)鍵標(biāo)識信息。是目前用戶隱私和手機(jī)安全中的一個(gè)突出問題。Android 系統(tǒng)僅僅將其顯示為「讀取手機(jī)狀態(tài)和身份」,具有相當(dāng)?shù)拿曰笮浴?/span>
App 限制交叉喚醒、鏈?zhǔn)絾?。除用戶的主動交互觸發(fā)外,避免啟動其它應(yīng)用未處于運(yùn)行中的進(jìn)程。
解讀:被動交互中出現(xiàn)的延遲或卡頓更易引發(fā)用戶的反感。此間如果涉及到啟動多個(gè)進(jìn)程,除進(jìn)程創(chuàng)建本身的顯著開銷和內(nèi)存壓力之外,如果啟動的是其它應(yīng)用的進(jìn)程(即通常所說的「交叉喚醒」),對方的初始化開銷則是一個(gè)完全不可控的因素。
(Target SDK Version >= 28 可豁免) App 讓設(shè)備 CPU 盡可能處于休眠狀態(tài),請求喚醒 CPU 的周期性任務(wù)時(shí)間間隔盡可能大于 1 小時(shí),并避免在不必要的時(shí)間段(如夜間)繼續(xù)調(diào)度周期性事件。
解讀:周期性喚醒 CPU 會打斷設(shè)備的深度睡眠狀態(tài),造成設(shè)備待機(jī)時(shí)長的明顯縮短。按照 Google 在 Project Volta 中的粗略測算,設(shè)備每 1 秒鐘的活躍工作會讓待機(jī)時(shí)間損失大約 2 分鐘。
(Target SDK Version >= 26 可豁免)App 避免不必要常駐后臺的行為。在應(yīng)用進(jìn)入后臺的短時(shí)間內(nèi)須停止所有后臺服務(wù),且在除了收到廣播和正常觸發(fā)的后臺行為期間不可以再啟動新的后臺服務(wù)。
解讀:后臺持續(xù)運(yùn)行的服務(wù),是一系列設(shè)備體驗(yàn)問題的溫床,如長連接基帶持續(xù)工作增加的耗電、低內(nèi)存時(shí)服務(wù)循環(huán)重啟引起的設(shè)備遲緩、間歇性 CPU 和 IO 資源占用造成的卡頓。
最直觀來說,安裝了綠色守護(hù),會看到許多應(yīng)用都標(biāo)注了「后臺純凈」。這代表著,在這個(gè)狀態(tài)下的應(yīng)用,綠色守護(hù)默認(rèn)不會休眠它們。因?yàn)樗麄兺ǔ2粫κ謾C(jī)的體驗(yàn)造成影響,所以你也可以放心地不采取任何措施。
如果你是 AppSo 客戶端用戶,我們也歡迎你在 AppWall 提交你覺得符合綠色應(yīng)用公約精神的應(yīng)用,記得打上 #綠色應(yīng)用# 的標(biāo)簽。
AppSo 將持續(xù)關(guān)注 Android 生態(tài),為大家發(fā)現(xiàn)良心應(yīng)用,以及讓手機(jī)更好用的方法。更多后續(xù)報(bào)道,請繼續(xù)關(guān)注我們。
聯(lián)系客服