Android 開發團隊或將幹預「殺後臺」現象,意味著什麼?
Android 開發團隊決定對「殺後臺」現象予以幹預。具體而言,Google 希望通過 CDD 兼容性定義文檔來對 OEM 廠商做出約束,包括定期就後臺應用的限制行為向用戶發出提醒、要求廠商不得通過「白名單(allow lists)」機制來對頭部應用和其他應用的後臺行為進行區別對待等等。
相關問題
2020 年 7 月 9 日發布的 Android 11 Beta 2 有哪些值得關注的新變化??www.zhihu.comhttps://www.reddit.com/r/androiddev/comments/hk3hrq/were_on_the_android_engineering_team_ask_us/?www.reddit.com
谷歌翻譯:
是否有計劃減少由各種(主要是中國的)??設備製造商在Android 11中設置的背景限制(請參閱https://dontkillmyapp.com/)?
開發需要做任何後臺工作的應用程序很困難,因為如果沒有這些製造商的設備,就不可能測試不同的限制。用戶將無法正常運行的應用程序歸咎於開發人員,而製造商設置的限制導致該應用程序無法使用。最重要的是,Play商店中的頂級應用已被這些製造商列入白名單,並且不受背景限制的影響,這使其變得不公平,甚至使用戶對某些應用為何起作用而其他應用不起作用感到困惑。
我也堅決反對白名單功能,恰恰是大廠App最應該被殺後臺。它們纔是毒瘤的主力,有能力遵守開發規範而故意作惡不遵守。
對於殺後臺則反對Android開發團隊的觀念。現在的亂相完全就是他們綏靖的後果。
除了極其個別的App,99%的功能其實都不需要後臺。包括微信QQ支付寶之流。它們的推送,有系統級別方案(GMS或者國內的統一推送),已經沒有任何合理的理由賴在後臺不走了。
一句話概括:不能讓老實人喫虧!
簡單翻譯一下Android 團隊說的內容:
對於設備製造商:
- 約束OEM廠商,應用被限制時告訴用戶。
- 要求設備製造商不得利用白名單保護頭部應用。
- 與設備製造商合作,糾正違反CCD的問題。
技術上:
- 新增API,開發者可以檢測應用被終止是用戶行為?還是崩潰?或者是系統策略?
- 增加對不規範行為的限制,不讓老實人喫虧!(we aren』t creating a harder life for the well behaved developers who are following our best practices.)
我個人是絕對支持Android加強這方面限制的,目前國內對Android手機,基本上都不會真正殺幾個頭部應用的後臺(尤其是微信)。這方面的改變會利好中小開發者,至少讓Android生態更公平。
主要為了一些小廠商考慮。
華為 小米這些廠商的後臺查殺機制已經很純熟了,目前主要考慮的就是查殺策略問題。
查殺策略,圍繞兩個機制來展開。
一個是用戶使用習慣機制,會把用戶在最近半小時左右,或者更長時間內使用頻率最高的應用的被查殺權重降低。
另外一種,就是題目中提到的,根據應用市場下載次數很高的top應用做白名單處理。一般諸如微信 qq這些,都被加在白名單,使用小刷子和任務管理器卡片劃掉都無法直接殺掉。必須通過應用管理點擊強行停止。
不過以上,都只是增加了查殺應用時候的權重,在內存緊張的時候,還是會殺,只不過被殺的優先順序會很低,往往排在最後殺。
這兩個策略如果最終都沒有對內存產生有效控制的話,就會觸發android內核的LMK查殺。該查殺機制只看應用的使用頻率和重要程度來按順序殺,殺到內存足夠為止。查殺的時候,對流暢性影響比較大。目前,也很少會觸發到這個程度,大部分還是依賴白名單和使用頻率的廠商查殺機制。
但是那些小廠商做的應用,不會被添加到白名單,他們就很難實現必須要常駐後臺才能實現的功能。即便像拼多多這種雙進程守護,根本沒有效果。還有美圖秀秀與其他廠商合作的應用互起,發揮的作用也很受限制。
這樣的好處就是,安卓逐漸的規範化了,沒有那麼多亂佔後臺資源的應用存活。
但是壞處就是,微信 qq這些擁有"皇權"的應用可以肆無忌憚的霸佔手機的資源空間。
比如微信的小程序,開上四五個在後臺,一個4G內存的手機,微信就會獨佔1.5G內存到2G內存左右,簡直就像是在安卓系統中獨立出來了一個微信系統。壓榨其他應用生存空間。
還比如qq,會長年累月的下載各種無關緊要的文件,大量侵佔磁碟空間,並且這些在平常的垃圾清理和qq的專清上都清理不到,時間長了,佔用10G以上的磁碟也非常正常。
谷歌也是正看到這一點,決定出手限制手機廠商不得只以top應用為基準來把那些應用添加進白名單,要另尋方法,給新生應用帶來存活空間。
利好支付寶,以後吐槽支付寶啟動比微信慢的人會大大減少。
真好,以後初次打開app時又多了個提示:
該app需要加入白名單的許可權,請問是否同意?
- 點「同意」:app正常運行
- 點「不同意」:app直接退出
像極了現在的app打開時,需要獲得攝像頭許可權的操作,用戶不給就直接退出,言下之意就是:愛用用,不用滾!
意味著俺們 android 開發再也不用去思考如何保活了。
猛拍大腿,好,好,好。
然並卵其實,領導一句話,為啥別人微信可以保活?你也得整。
說白了,增大了,我們開發技術難度。
保活不成功,我也有理由了,google 推出政策就這樣,無奈啊。
不想著提高用戶體驗,盡想著獲取用戶私人信息,流氓產品。
不意味著什麼。在國外毒瘤軟體幾乎不存在,可以說在這種條件下不殺後臺就可以減少對用戶多任務操作的幹預。
但在國內,不殺後臺?不存在的。要是真一直讓軟體後臺保活,過一會用戶打開一個新 App 系統就因為內存不足崩掉了。
要想徹底解決殺後臺問題,還是要國內軟體好好做優化,後臺的時候盡量避免不必要的資源佔用,另外統一推送聯盟是個好東西。
play商店中的應用?
中國的安卓系統有谷歌商店嗎?
GMS全套都給你刪了。
而且最重要的一點就是,國產手機各種修改系統源代碼,他可以隨意修改。
特別華為手機,Android 原生API在華為手機上總會出現各種問題。
除非谷歌宣佈Android停止開源,搞成像蘋果那樣,只給開發者文檔,不給你看系統代碼。
否則中國做Rom的公司就永遠不會停止跟軟體廠商合作,在系統裏搞點東西,故意讓某些app可以在後臺跑,並且不給任何提示。
小米10 pro已經體驗上了,現在明顯感覺省電了很多
這事兒意義很大,以前做一個app,客戶問為什麼後臺不能運行,微信卻可以,我告訴他微信在白名單裏,現在的話,就可以說是谷歌限制的
考慮到國內廠商的流氓程度,殺後臺是個必要功能,但看來很快就只有華為一家能做會殺後臺的手機了。
算不算是因禍得福?
推薦閱讀: