呱呱呱呱
3 years ago @Edit 3 years ago
Google Issue Tracker

TL;DR android 12 引入一種新的應用程式背景清理方式,會使得 tasker、termux 等長期駐紮在背景的軟體功能失效。
android 12L 後引入解決方式。

android 12 引入 Phantom Processes ,當 max process 超過 32 時,即使 ram 的空間綽綽有餘,仍然會依照 PhantomProcessList 從後往前關閉正在運作的程式。

這導致當多開幾個前景程式,可能就會關閉幾乎不耗電的背景軟體(即使開了不限制背景耗電,仍然會被影響)。而由於預設設太低,平常用一下就會撞到。 aka 咦我的軟體怎麼被關掉了

下收
呱呱呱呱
3 years ago
這次會發現,是因為 McAfee(陰魂不散) 動不動就開了 72 個 process+很喜歡站到前景,讓背景軟體一直被強制關閉。
呱呱呱呱
3 years ago
而假使使用者下載了惡意,或單純只是寫的不好的軟體。就會被這樣的措施影響。即使回報給開發者,也可能因為沒有安裝相同的其他軟體而無法重現。
呱呱呱呱
3 years ago
解決方式有兩種,禁用功能或是放寬限制。雖然開發者表示測試到非常大的值也沒有看到明顯耗電增加,不過可能還是要自行斟酌。
立即下載
呱呱呱呱
3 years ago
檢查 max phantom processes
adb shell "/system/bin/dumpsys activity settings | grep max_phantom_processes"

增加大小(比如說 1024)
adb shell device_config put activity_manager max_phantom_processes 1024

或是禁用功能
adb shell "settings put global settings_enable_monitor_phantom_procs false"
呱呱呱呱
3 years ago
雖然發現者表示設到非常大的值,也沒有特別出現額外耗電的情況。

但可能還是要稍微注意一下。

其他資料與討論Android-Docs/phantom-cached-and-empty-processes.md a...