愛伊米

劃掉多工卡片意味著什麼?Android 13 前臺服務管理器詳解

每一次 Android 大版本更新都會帶來不少底層機制的更新,其中最為重要、也是使用者最為關注的部分,除了介面設計應該就是「效能與續航」了。

具體到今年剛剛釋出的 Android 13 開發者預覽版,新增的「前臺服務管理器」尤為令人矚目。

任務、活動與服務

在 Android 系統上,前後臺的區分其實相當符合直覺:使用者看不到的就是後臺,其餘看得到的就是前臺。但對我們這些日常操作主要是「開啟應用、切換多工、划走應用卡片」的使用者來說,「服務」這個概念就有點不好理解了。

讓我們把應用拆開——大部分時候,和我們產生互動的其實都只是應用中的一部分,這些不同的互動介面我們稱之為「活動視窗」;在活動視窗之外,應用還可以自己獨立執行一項「服務」,根據 Google 的官方文件介紹,服務是一種可在後臺執行長時間執行操作,而不提供介面的應用元件。

典型的前臺服務,包括音樂播放、健身記錄、位置共享、語音或影片通話等。對於前臺服務,系統會盡可能地將它們透過通知系統暴露給使用者。

以照片備份上傳為例,一旦開始備份,OneDrive 便會彈出一條通知,告知使用者照片備份上傳的具體進度,這就是一個典型前臺服務通知。這個時候如果我們在多工介面將 OneDrive 的活動視窗劃去,那麼這條通知依然存在、備份也會進行下去。當備份完成的那一刻,這個服務也就走到了它的時間終點,通知也會自動消除。

劃掉多工卡片意味著什麼?Android 13 前臺服務管理器詳解

所以如果日後開啟應用時冷不丁冒出一條「正在同步……」的通知,或是拍完照片後彈出一條「正在最佳化照片」的通知,不用感到意外,這說明系統和應用的協作一切正常。

至於後臺服務……使用者甚至都不會感知到自己的手機跑了哪些後臺服務,且 Google 傾向於讓應用把長期的後臺任務交給系統來執行,就像在 iOS 上那樣,就需要另開一篇文章聊這事兒了。

劃掉多工卡片意味著什麼?Android 13 前臺服務管理器詳解

前臺服務其實相當常見

為什麼要限制前臺服務

透過通知系統來告知使用者,讓應用得以獲取使用者的注意焦點來提升執行優先順序,並最終得以完成任務。在我看來這是很聰明的做法,如今這樣的機制也已經成為應用確保任務完成的重要手段。

不過從上面的介紹中也不難看出,前臺服務主要有兩大特點:

即使使用者停止與應用的互動,仍能繼續執行

執行過程中必須顯示通知

所以將二者結合起來可以得出的另一種事實卻是,只要應用保證通知正常顯示,它的前臺服務就能持續保持執行。

因此同樣的機制如果被濫用,也是有可能造成大量系統資源浪費的。在現實世界中,各類魔改 UI 幫助使用者「收納」通知不說,應用本身可能也會彈出具有迷惑性的通知(比如偽裝成天氣資料 )來保證自己的服務持續存活。更不用提大部分使用者對「應用掛個通知就能持續執行」這件事情毫無概念了。

針對這類情況,必要的檢測和停用手段是必須的。Android 13 這次引入的前臺服務管理器終於補上了這一環。

防範管控的第一步,自然是先將所有前臺服務的應用羅列出來。Android 13 的快速開關面板在重新佈局的同時,底部也多出了一欄「前臺服務管理器」,點選展開後即可看到當前正在活躍的應用,點選對應的「停止」按鈕就能一鍵讓應用停止執行,可謂是相當「快準狠」的管理方式。

劃掉多工卡片意味著什麼?Android 13 前臺服務管理器詳解

根據 Android 13 現階段的設計,針對同一應用這樣的警告通知不會在 30 天內重複出現。另外也不是所有應用都會出現在前臺服務管理器中,系統級應用、緊急安全相關應用不會出現在這個列表中;部分應用會出現在這個列表中但沒有「停止」按鈕,比如啟用裝置所有方的應用、撥號應用等。

與「劃卡強殺」的區別

在關於前臺服務管理器的相關文件中,我們也得以第一次看到現代 Android 對「多工介面上劃應用卡片」這個行為的定義,以及它和前臺服務管理器的實際區別。

劃掉多工卡片意味著什麼?Android 13 前臺服務管理器詳解

早年黑域、綠色守護和部分廠商的「劃卡強殺」其實更接近最右側的 Force stop,也就是強行停止。現在進入到應用管理的詳情頁也依舊能夠看到這個按鈕,被強行停止的應用會停止一切活動,一般來說不能再自行啟動,只能使用者手動或其餘應用拉起才能恢復執行。

從這張表也可以看出,多工介面真真切切變成了「應用執行歷史記錄」

,而非代表應用的實際執行狀態。划走卡片只是取消了歷史記錄以及清走「活動視窗」,應用並不會立刻從 RAM 離開,理論上來說可以繼續保留通知、播放媒體。

劃掉多工卡片意味著什麼?Android 13 前臺服務管理器詳解

前臺服務管理器的停止按鈕除了會暫停前臺服務,也會將應用從 RAM 中驅離。需要注意的是,此時應用只是停止了執行,並不會從多工視窗中移除,這一考慮或許是為了方便使用者快速恢復任務,同時減少系統資源消耗。

結語

閱讀近兩個版本的 Android 開發指南文件,給我最大的感受就是 Google 試圖讓系統機制來接管應用的活動、服務程序等,而不建議開發者自己處理。由系統接管具體行為的做法不僅可以減少應用對系統資源、許可權的濫用,同時也能有效保護使用者隱私,這一點隔壁陣營應該早有實踐。

只是現階段的文件口徑都只是「建議」,希望 Google 未來可以一步步落實,讓 Android 系統真正轉變為「人機互動」的作業系統。

https://sspai。com/post/72283?utm_source=wechat&utm_medium=social

作者:路中南

責編:他自己