劃掉多任務卡片意味著什么?Android 13 前臺服務管理器詳解
每一次 Android 大版本更新都會帶來不少底層機制的更新,其中最為重要、也是用戶最為關注的部分,除了界面設計應該就是「性能與續航」了。
具體到今年剛剛發布的 Android 13 開發者預覽版,新增的「前臺服務管理器」尤為令人矚目。
▍任務、活動與服務
在 Android 系統上,前后臺的區分其實相當符合直覺:用戶看不到的就是后臺,其余看得到的就是前臺。但對我們這些日常操作主要是「打開應用、切換多任務、劃走應用卡片」的用戶來說,「服務」這個概念就有點不好理解了。
讓我們把應用拆開——大部分時候,和我們產生交互的其實都只是應用中的一部分,這些不同的交互界面我們稱之為「活動窗口」;在活動窗口之外,應用還可以自己獨立運行一項「服務」,根據 Google 的官方文檔介紹,服務是一種可在后臺執行長時間運行操作,而不提供界面的應用組件。
典型的前臺服務,包括音樂播放、健身記錄、位置共享、語音或視頻通話等。對于前臺服務,系統會盡可能地將它們通過通知系統暴露給用戶。
以照片備份上傳為例,一旦開始備份,OneDrive 便會彈出一條通知,告知用戶照片備份上傳的具體進度,這就是一個典型前臺服務通知。這個時候如果我們在多任務界面將 OneDrive 的活動窗口劃去,那么這條通知依然存在、備份也會進行下去。當備份完成的那一刻,這個服務也就走到了它的時間終點,通知也會自動消除。
所以如果日后打開應用時冷不丁冒出一條「正在同步……」的通知,或是拍完照片后彈出一條「正在優化照片」的通知,不用感到意外,這說明系統和應用的協作一切正常。
至于后臺服務……用戶甚至都不會感知到自己的手機跑了哪些后臺服務,且 Google 傾向于讓應用把長期的后臺任務交給系統來執行,就像在 iOS 上那樣,就需要另開一篇文章聊這事兒了。
前臺服務其實相當常見
▍為什么要限制前臺服務
通過通知系統來告知用戶,讓應用得以獲取用戶的注意焦點來提升運行優先級,并最終得以完成任務。在我看來這是很聰明的做法,如今這樣的機制也已經成為應用確保任務完成的重要手段。
不過從上面的介紹中也不難看出,前臺服務主要有兩大特點:
即使用戶停止與應用的交互,仍能繼續運行
執行過程中必須顯示通知
所以將二者結合起來可以得出的另一種事實卻是,只要應用保證通知正常顯示,它的前臺服務就能持續保持運行。
因此同樣的機制如果被濫用,也是有可能造成大量系統資源浪費的。在現實世界中,各類魔改 UI 幫助用戶「收納」通知不說,應用本身可能也會彈出具有迷惑性的通知(比如偽裝成天氣數據)來保證自己的服務持續存活。更不用提大部分用戶對「應用掛個通知就能持續運行」這件事情毫無概念了。
針對這類情況,必要的檢測和停用手段是必須的。Android 13 這次引入的前臺服務管理器終于補上了這一環。
防范管控的第一步,自然是先將所有前臺服務的應用羅列出來。Android 13 的快速開關面板在重新布局的同時,底部也多出了一欄「前臺服務管理器」,點擊展開后即可看到當前正在活躍的應用,點擊對應的「停止」按鈕就能一鍵讓應用停止運行,可謂是相當「快準狠」的管理方式。
其次 Android 系統也會幫助用戶對前臺服務進行監督,具體的機制是,在以 24 小時為單位的時間長度內,如果某應用的前臺服務運行超過 20 小時,系統就會發送通知告訴「XX 已經長時間后臺運行,點擊查看詳情」。這時點擊通知也會跳轉到上述前臺服務任務管理器當中。
根據 Android 13 現階段的設計,針對同一應用這樣的警告通知不會在 30 天內重復出現。另外也不是所有應用都會出現在前臺服務管理器中,系統級應用、緊急安全相關應用不會出現在這個列表中;部分應用會出現在這個列表中但沒有「停止」按鈕,比如激活設備所有方的應用、撥號應用等。
▍與「劃卡強殺」的區別
在關于前臺服務管理器的相關文檔中,我們也得以第一次看到現代 Android 對「多任務界面上劃應用卡片」這個行為的定義,以及它和前臺服務管理器的實際區別。
早年黑域、綠色守護和部分廠商的「劃卡強殺」其實更接近最右側的 Force stop,也就是強行停止。現在進入到應用管理的詳情頁也依舊能夠看到這個按鈕,被強行停止的應用會停止一切活動,一般來說不能再自行啟動,只能用戶手動或其余應用拉起才能恢復運行。
從這張表也可以看出,多任務界面真真切切變成了「應用運行歷史記錄」,而非代表應用的實際運行狀態。劃走卡片只是取消了歷史記錄以及清走「活動窗口」,應用并不會立刻從 RAM 離開,理論上來說可以繼續保留通知、播放媒體。
前臺服務管理器的停止按鈕除了會暫停前臺服務,也會將應用從 RAM 中驅離。需要注意的是,此時應用只是停止了運行,并不會從多任務窗口中移除,這一考慮或許是為了方便用戶快速恢復任務,同時減少系統資源消耗。
▍結語
閱讀近兩個版本的 Android 開發指南文檔,給我最大的感受就是 Google 試圖讓系統機制來接管應用的活動、服務進程等,而不建議開發者自己處理。由系統接管具體行為的做法不僅可以減少應用對系統資源、權限的濫用,同時也能有效保護用戶隱私,這一點隔壁陣營應該早有實踐。
只是現階段的文檔口徑都只是「建議」,希望 Google 未來可以一步步落實,讓 Android 系統真正轉變為「人機交互」的操作系統。
本文來自微信公眾號 “少數派”(ID:sspaime),作者:路中南,36氪經授權發布。
標簽: 前臺服務