控制頻繁啓動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

ndroid 9.0 正式版已經推送了兩月有餘,儘管這一次很多非 Google 機型都藉助 Project Treble 第一時間吃上了「派」,但 9.0 的諸多 改動和新特性 對部分用戶而言還是有著不小的上手門檻和適應難度,比如更加強力、但也略顯複雜的通知系統與勿擾模式,再比如擁有受限應用、後臺檢查、待機應用等多層機制的電源管理模式。

如果你想要擁有最佳的續航時間卻不知該從何下手進行應用管理,今天這篇文章應該能夠幫到你。

待機機制

你可能不知道的是,谷歌自 Android 6.0 時代就已經為 Android 系統引入了待機(Standby)機制,這個機制通過推遲後臺網絡活動(比如獲取你不關心的資訊動態)來儘可能地降低那些我們使用頻率較低的應用的後臺電量消耗。

但這個待機機制長期一來卻被詬病為「雞肋」。

一方面,Android 系統並未向我們提供一個可交互的界面來對這個「使用頻率」進行自定義,而這個待機機制本身對於「使用頻率較低」這個條件的判定規則過於寬鬆,待機機制的後臺活動限制可以輕鬆地被 BAT 三家的「毒瘤」應用們破除;另一方面,和 Android 系統的其他省電機制(如 Doze)比起來,待機機制的限制力度也較低,最終達到的效果微乎其微。

Android 9.0 對待機機制進行了優化和改進:首先,待機機制從「使用頻率較低」這個較為模糊的概念範圍中跳了出來,進而適用於所有應用

控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

其次,新的待機機制引入了一個新的概念——應用待機桶(App Standby Buckets),基於 AI 對我們日常應用使用習慣的觀察和學習,手機中的所有應用都會被分配到不同的「桶」當中去,這些「桶」包括:

  • 活躍(Active):正在使用中的應用,如正在前臺運行的微信。系統不會對這個「桶」中的應用施加任何後臺資源限制。
  • 工作組(Working set):經常使用但當前並沒有活動的應用,如用於移動支付的支付寶,我們並不需要它像微信那樣具備即時性,只需它在使用時能夠快速進入工作狀態。系統會對這些應用施加較為溫和的後臺資源限制(如適當推遲一些內容更新活動等等)。
  • 頻繁(Frequent):頻繁這個「桶」裡的應用其實沒有固定的頻率,比如我們隔三差五去健身房或出門下館子才會用的運動記錄、優惠券 App 等。系統會延遲這些應用的部分後臺活動並減少它們發出高優先級通知的頻率。
  • 罕用(Rare):不常用的應用,比如我們偶爾出差、旅遊時才會打開預定車票、機票和住宿的應用。系統會延遲「罕用」應用的後臺活動和大部分通知,對這些應用的後臺網絡活動限制最長可達 24 小時。
  • 從不使用(Never):從來沒有運行過的應用,自然而然地,系統不會為這些應用分配任何系統資源。
控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

「活躍」的應用能夠最大程度的利用到系統資源,「從未使用」則完全相反

這裡需要大家額外注意的有這樣幾點。

其一,上面出現的應用僅作為方便大家理解的例子,在實際使用中,哪些應用該進入哪個「桶」,都會根據個體的使用習慣而變——比如你的主要移動支付工具是微信,偶爾打開看看理財收益的支付寶,也許就會被放入「頻繁」甚至是「罕用」應用當中。

其二,如果你想進一步瞭解「哪些『桶』有哪些具體的限制」這個問題,不妨參考下面這份由谷歌給出的示例表格:

控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

谷歌給出的參考示例

其三,針對 9.0 之前用戶無法根據自身使用情況手動干預應用待機機制的問題,谷歌在引入機器學習的同時,也允許用戶在 開發者選項->待機應用 設置中手動為每個應用設定待機「桶」。

控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

待機應用所處位置

其四,考慮到某些應用也許會通過頻繁發送通知與用戶進行互動的方式來「保活」,破壞「應用待機桶」機制的設計目標,谷歌會在用戶頻繁消除某個應用的通知時給出一鍵阻止該類通知的快捷操作,確保應用活躍度判定的真實有效。

控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

通知屏蔽提示

最後,設備製造商可以在「應用待機桶」這個機制的基礎上自行定製應用的分配標準,理想情況下,國內定製 UI 中各類「省電精靈」和「安全助手」可以針對中國大陸特有的應用生態環境對這個機制進行適當加強;另外,原生 Android 9.0 默認不會在手機充電時施加任何限制。

應用限制

如何在「綠色守護」和「黑閾」這類應用中做出抉擇,幾乎是每個剛剛轉入 Android 陣營的用戶都會糾結的一個問題,而每次向 @Clyde 問起類似的問題,他總會跟我瞎吹說「『奧利奧』集成了一個『黑閾』,還要什麼優化應用?」

這句話其實有一定道理:谷歌自 Android Oreo 開始引入了一個名為「後臺檢查」的功能,可以在部分應用的 應用信息->電池 中手動開啟,開啟後,目標應用的相關服務(如 widget 刷新、通知推送等)在放入後臺 1 分鐘後便會直接停止。

後臺檢查功能設計之初雖然針對 API 26 以下(即沒有適配更高版本系統)的應用,國內的「毒瘤」應用也大多滿足這個條件,但它們仍然可以通過上面提到的頻繁發送通知這樣的方式實現「保活」,同時,後臺檢查功能的限制範圍不包括定時喚醒和任務調度週期。

用一句話來總結這個功能就是:後臺檢查雖然將躲在幕後的隱性機制變成了實實在在可操作的開關,但依然不夠強力。因而在 Android 9.0 中我們會發現,應用信息裡原有的後臺檢查功能已經被一個名為「應用限制(Restrict app)」的功能所取代。

控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

嘗試為餓了麼開啟後臺限制(即應用限制)

應用限制與後臺檢查一脈相承但要更進一步,有著更廣的適用範圍和更強力的限制手段。

適用範圍上,Android Oreo 中的後臺檢查只針對 API 26 以下應用,而 Android Pie 的應用限制面向系統中所有已安裝應用;限制手段上,和本文第一部分所介紹的「應用待機桶」更多地採用延後、推遲等手段來節省系統資源的方法不同,當我們為某款應用開啟了應用限制,這款應用的所有後臺運行活動、聯網請求和相關服務都將被系統強制忽略。當一款被限制的應用放入後臺運行時,它只能通過 Android 平臺的統一推送(FCM)與我們進行互動。

控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

應用限制 vs. 後臺檢查

兩個機制前者相對溫和,後者更為激進。排除一味殺應用的粗暴做法,而是選擇精細地限制應用運行的機會和資源,既可以由系統自動化建議和執行,也可以由用戶自行設立限制,二者相輔相成,基本上可以治理好一些常見的「毒瘤」應用。

關於「省電模式」

除了是一個內核玩家,我同時也是一個 iOS 用戶,iOS 的低電量模式在限制後臺活動刷新外,還會大幅降頻 CPU, 能讓手機的續航增色不少;但是 Android 上面的省電模式採用了不同的策略——它並沒有降頻 CPU 或犧牲性能,而是採用限制後臺活動、關閉動畫(我不太理解為什麼 iOS 的低電量模式不關閉動畫來省電)的方式,並在狀態欄和導航欄用醒目刺眼的紅色來警示用戶少玩手機。

Android 9.0 上的省電模式的策略有所調整:不降頻 CPU、不關閉動畫、不用紅色警示你,同時大幅削弱應用的後臺活動。

控制頻繁啟動的毒瘤,Android 9.0 用這些方法讓你的手機更省電

Android 9.0 的省電模式

這裡的「大幅削弱應用的後臺活動」主要體現在以下幾個方面:

  • 系統不再等待應用空閒,而是主動將應用設置為待機(Standby)模式,這樣一來,應用待機桶功能起到的作用會更為明顯;
  • 「應用限制」將施加在所有應用上,無論用戶是否針對應用單獨進行過設置;
  • 後臺的應用程序沒有訪問網絡的權限,屏幕關閉時還可能會自動禁用位置服務;
  • 針對傳感器進行功耗優化,比如在開啟了省電模式的 Pixel 2 上,抬手亮屏和雙擊亮屏都被禁用了;
  • 省電模式可以手動打開,也可以在我們設定的電量百分比(5%~75%) 自動打開;
  • 同樣,這個省電模式的具體限制方式和觸發規則也可以由 OEM 廠商根據需求進行定製。

小結

回到文章開頭提到的問題:想要在 Android 9.0 上獲得最佳的續航時間究竟該從何下手呢?

從用戶的角度出發,我們需要做的其實並不多,因為大部分統計、檢測、判斷的任務其實都可以交給機器學習來完成,我們只需要像往常一樣使用應用就行了,不用過多操心。如果你真的想幫它一點忙,或對某些「毒瘤」不太放心,也可以做這些事:

  • 及時更新你的應用到最新版本。適配系統後的應用才能最大地限度發揮它們功能的同時,又不過度消耗你的電量;
  • 系統向你建議限制應用、阻止通知時,根據自己的實際需求考慮後做決定;
  • 據自己日常行程設定一個合適的電量百分比,自動打開你的節電模式;
  • 打開開發者選項,關閉毒瘤的後臺活動,在「待機應用」裡將不常用的應用設置為「罕用」。

歡迎在評論區分享你的看法。


分享到:


相關文章: