遇到上述問題的人不止你一個,很多人選擇向這些應(yīng)用的開發(fā)者反饋問題,殊不知問題其實不在應(yīng)用本身。Android 平臺著名睡眠追蹤應(yīng)用 Sleep as Android 的開發(fā)團(tuán)隊 Urbandroid Team 不堪其擾,索性上線了一個名為「別『殺』我應(yīng)用」的網(wǎng)站,矛頭直指手機(jī)廠商糟糕的后臺管理機(jī)制。
Don't kill my app! 網(wǎng)站對 OEM 系統(tǒng)的評分以三星為例,Urbandroid Team 稱,三星的部分機(jī)型在升級到基于 Android 9 的 One UI 后「殺后臺」現(xiàn)象變得尤為嚴(yán)重,自適應(yīng)電池(Adaptive Battery)機(jī)制相比原生 Android 變得尤為激進(jìn),3 天內(nèi)沒有啟動過的應(yīng)用甚至無法從后臺再次啟動。最為糟糕的情況是,如果你安裝了一個可以自動跳過周末的第三方鬧鐘,那這個鬧鐘應(yīng)用很有可能不會像系統(tǒng)鬧鐘那樣在下周一早上準(zhǔn)時響起……正如「別『殺』我應(yīng)用」網(wǎng)站上控訴的那樣,擁有類似機(jī)制的還包括華為、一加、小米、華碩等等手機(jī)廠商的定制版 Android 系統(tǒng),它們管理后臺的方式大同小異,但都秉承著 iOS 上那一套「劃掉就殺掉」的原則——當(dāng)我們把某款應(yīng)用的任務(wù)卡片從多任務(wù)界面劃去,它們也就徹底從手機(jī)后臺中抹除掉了。這里你可能會問很多問題:
在可用內(nèi)存充裕的情況下遭遇「殺后臺」現(xiàn)象,一方面可能是 LMK 這把「大刀」出了問題(常見于 Android 9 時期的 Pixel 3 用戶),另一方面則有可能是其它規(guī)則額外干預(yù)了 Android 系統(tǒng)正常的內(nèi)存回收機(jī)制。這里提到的「其它規(guī)則」主要有兩種形式,一種類似部分華為設(shè)備上預(yù)裝的「省電精靈」,它會將所有沒有加入后臺白名單中的應(yīng)用后臺統(tǒng)統(tǒng)清除,另一種則依托于 Google 推出的后臺檢查、后臺限制和自適應(yīng)電池等功能進(jìn)行「魔改」,讓這些功能的實際效果遠(yuǎn)超預(yù)期,甚至達(dá)到意料之外的負(fù)面效果。根據(jù) Don't kill my app! 的統(tǒng)計,第二種后臺干預(yù)機(jī)制在三星、一加和早期的諾基亞機(jī)型中常見,這里廠商們通常會用到一種類似「白名單」的方法來進(jìn)行過濾。以三星手機(jī)基于 Android 9 的 One UI 為例,除了微信、QQ 等國內(nèi)常見應(yīng)用,One UI 默認(rèn)會為所有第三方應(yīng)用關(guān)閉「允許后臺活動」這一選項,同時開啟「優(yōu)化電池使用量」這一功能。
One UI 的后臺管理部分搭載氫 OS 的一加機(jī)型則將上面提到的應(yīng)用進(jìn)程進(jìn)行拆分,除了基于原生 Android 的后臺限制、電池優(yōu)化,還有一套名為「自啟動管理」的設(shè)置來對應(yīng)用的自啟動進(jìn)行管理以及一套名為「深度優(yōu)化」的電池優(yōu)化機(jī)制,后者會造成很多智能手表、手環(huán)設(shè)備在一段時間后丟失與手機(jī)的藍(lán)牙連接,最終導(dǎo)致睡眠追蹤、運動記錄等等功能的失效。
氫 OS 的自啟動管理問題在于上述功能埋藏較深,一般用戶在安裝應(yīng)用后往往不會第一時間前往設(shè)置,一加的氫 OS 更是以系統(tǒng)更新之后自動重置部分用戶設(shè)置聞名,那些需要在后臺正常工作的應(yīng)用,因此也被都被直接扔進(jìn)了原生 Android 中用來限制「毒瘤」應(yīng)用的「黑箱」里。 換句話說,國內(nèi)大部分定制 ROM 在后臺管理這件事情上都選擇采用一種「寧肯錯殺一千不肯放過一個」的做法。