天天看點

劃掉多任務卡片意味着什麼?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

作者:路中南

責編:他自己

繼續閱讀