Android 緩存應用凍結器(Cached Apps Freezer)

一、核心功能與原理

1. 功能概述
  • 目標:通過凍結后臺緩存應用的進程,減少其對 CPU、內存等系統資源的消耗,優化設備性能與續航。
  • 適用場景:針對行為不當的后臺應用(如后臺偷偷運行代碼、占用 CPU),強制其進入“休眠”狀態。
2. 技術實現
  • 基于內核 cgroup v2 凍結器:通過將應用進程遷移到 凍結的 cgroup(控制組),暫停進程執行,保留內存狀態(類似“掛起”)。
  • 效果
    • 減少活躍緩存應用的 CPU 消耗(包括活躍和空閑狀態)。
    • 降低內存占用優先級,系統可優先回收凍結進程的內存。

二、啟用與停用方法

1. 通過開發者選項啟用
  • 操作路徑:設置 → 開發者選項 → 勾選“暫停執行已緩存的應用”。
2. 通過 ADB 命令配置(需 root 或調試權限)
  • 啟用命令
    adb shell device_config put activity_manager_native_boot use_freezer true && adb reboot
    
  • 停用命令
    adb shell device_config put activity_manager_native_boot use_freezer false && adb reboot
    
3. 檢查狀態
  • 啟用后,系統會通過 cgroup v2 凍結器管理后臺緩存進程。

三、API 與開發注意事項

1. 系統 API(隱藏接口)
  • 主要接口
    • setProcessFrozen:手動凍結/解凍進程。
    • enableFreezer:控制凍結器全局開關。
  • 參考代碼:可查看 ActivityManager 中的 Process.javaActivityManagerService 相關實現。
2. 自定義功能的兼容性問題
  • 問題場景:若應用依賴后臺緩存進程執行特定功能(如后臺定位、周期性任務),凍結后可能導致功能異常。
  • 解決方案
    • 將需要運行的進程狀態改為 非緩存狀態,例如:
      • 綁定前臺服務(BFGS,Foreground Service)。
      • 將進程提升為前臺狀態(如顯示通知)。
    • 示例代碼邏輯
      // 在需要后臺運行時,啟動前臺服務避免凍結
      Intent serviceIntent = new Intent(context, MyBackgroundService.class);
      context.startForegroundService(serviceIntent);
      

四、測試與驗證方法

1. 命令行工具檢查
  • 查看凍結進程列表
    adb shell dumpsys activity | grep "Apps frozen:"
    
    • 輸出結果會列出當前被凍結的應用包名。
2. 內核 cgroup 狀態檢查
  • 查看凍結器文件
    ls /sys/fs/cgroup/uid_0/cgroup.freeze
    
    • 若文件存在且值為 1,表示凍結器已啟用。
3. 日志監控
  • 通過 Logcat 追蹤凍結事件
    adb logcat | grep -i "\(freezing\|froze\)"
    
    • 典型日志示例:
      ActivityManager: Freezing process com.example.app (pid=12345)
      ActivityManager: Froze process com.example.app after 100ms
      

五、典型應用場景與效果

場景凍結前行為凍結后行為
后臺社交應用持續刷新消息、輪詢服務器、占用 CPU/網絡進程暫停,不再執行代碼,網絡請求掛起
新聞類應用緩存進程后臺預加載內容、定期更新數據庫預加載停止,數據庫操作暫停
未激活的多任務應用多個進程同時運行,內存占用高非前臺進程逐步凍結,僅保留必要系統進程活躍
存在后臺漏洞的應用利用后臺漏洞執行惡意代碼(如挖礦、偷跑流量)代碼執行完全停止,阻斷資源濫用

六、注意事項

  1. 兼容性限制

    • 僅支持搭載 cgroup v2 內核的設備,部分舊機型可能不適用。
    • 凍結器功能可能與部分系統優化工具(如內存清理軟件)沖突。
  2. 開發者適配建議

    • 避免依賴后臺緩存進程執行關鍵任務,優先使用系統允許的后臺模式(如前臺服務)。
    • 通過 onTrimMemory() 等回調處理內存緊張場景,而非依賴后臺持續運行。
  3. 用戶體驗平衡

    • 凍結器可能略微增加應用冷啟動時間(需從內存恢復狀態),但優于強制殺進程后的重新加載。

ps:內容基于 Android 11 QPR3 及更高版本的特性:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907767.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

內存管理 : 06 內存換出

內存換出的重要性及與換入的關系 現在我們講第25講,主題是內存的換出(swipe out)。實際上,上一講我們講的是內存的換入,而這一節聚焦于內存的換出。 換入和換出必須合在一起工作,不能只有換入而沒有換出。…

第一節 51單片機概述

目錄 一、單片機系統組成 (一)、單片機硬件系統 (二)單片機的軟件系統 二、STC89C52單片機 (1)、基本信息 (2)、命名規則 (3)、單片機內部結構圖 &am…

前端面試準備-4

1.React Router的history模式中,push和replace有什么區別 都是用于頁面導航,但是他們對瀏覽器歷史記錄的處理不一樣。 ①:push是在瀏覽歷史棧里加入一條新的瀏覽歷史,點擊返回鍵會返回上一個頁面 ②;replace是替換當前歷史記錄…

【機器學習基礎】機器學習入門核心:Jaccard相似度 (Jaccard Index) 和 Pearson相似度 (Pearson Correlation)

機器學習入門核心:Jaccard相似度 (Jaccard Index) 和 Pearson相似度 (Pearson Correlation) 一、算法邏輯Jaccard相似度 (Jaccard Index)**Pearson相似度 (Pearson Correlation)** 二、算法原理與數學推導1. Jaccard相…

Unity3D仿星露谷物語開發57之保存庫存信息到文件

1、目標 保存下面庫存欄中信息到文件中。 2、修改SceneSave.cs腳本 添加2行代碼: 3、修改InventoryManager對象 添加Generate GUID組件。 4、修改InventoryManager.cs腳本 添加繼承自ISaveable 添加屬性信息: private string _iSaveableUniqueID;pub…

測量3D翼片的距離與角度

1,目的。 測量3D翼片的距離與角度。說明: 標注A 紅色框選的區域即為翼片,本示例的3D 對象共有3個翼片待測。L1與L2的距離、L1與L2的角度即為所求的翼片距離與角度。 2,原理。 使用線結構光模型(標定模式&#xff0…

深入理解 SQL 的 JOIN 查詢:從基礎到高級的第一步

在處理數據庫時,我們常常需要從多個表中提取數據。比如想知道一個城市的天氣情況,同時又想知道這個城市的具體位置。這就需要將 weather 表和 cities 表結合起來查詢。這種操作在 SQL 中被稱為 JOIN 查詢。 現在看下兩種表的情況 1.weather 表&#xff…

上傳頭像upload的簡易方法,轉base64調接口的

1.首頁使用el-image顯示數據&#xff0c;用的是轉base64后端返給的 <el-table-column prop"avatar" align"center" label"頭像"><template #default"scope"><el-image style"height: 40px;width: 40px;" :sr…

[AD] CrownJewel-1 Logon 4799+vss-ShadowCopy+NTDS.dit/SYSTEM+$MFT

QA QA攻擊者可以濫用 vssadmin 實用程式來建立卷影快照&#xff0c;然後提取 NTDS.dit 等敏感檔案來繞過安全機制。確定卷影複製服務進入運作狀態的時間。2024-05-14 03:42:16建立卷影快照時&#xff0c;磁碟區複製服務會使用機器帳戶驗證權限並列舉使用者群組。找到卷影複製過…

rtpmixsound:實現音頻混音攻擊!全參數詳細教程!Kali Linux教程!

簡介 一種將預先錄制的音頻與指定目標音頻流中的音頻&#xff08;即 RTP&#xff09;實時混合的工具。 一款用于將預先錄制的音頻與指定目標音頻流中的音頻&#xff08;即 RTP&#xff09;實時混合的工具。該工具創建于 2006 年 8 月至 9 月之間。該工具名為 rtpmixsound。它…

GitHub 趨勢日報 (2025年05月28日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖 2379 agenticSeek 1521 computer-science 841 n8n 577 langflow 351 qlib 282 skt…

threejsPBR材質與紋理貼圖

1. PBR材質簡介 本節課沒有具體的代碼&#xff0c;就是給大家科普一下PBR材質&#xff0c;所謂PBR就是&#xff0c;基于物理的渲染(physically-based rendering)。 Three.js提供了兩個PBR材質相關的APIMeshStandardMaterial和MeshPhysicalMaterial,MeshPhysicalMaterial是Mes…

Android 12系統源碼_多屏幕(四)自由窗口模式

一、小窗模式 1.1 小窗功能的開啟方式 開發者模式下開啟小窗功能 adb 手動開啟 adb shell settings put global enable_freeform_support 1 adb shell settings put global force_resizable_activities 11.2 源碼配置 copy file # add for freedom PRODUCT_COPY_FILES …

C# 將HTML文檔、HTML字符串轉換為圖片

在.NET開發中&#xff0c;將HTML內容轉換為圖片的需求廣泛存在于報告生成、郵件內容存檔、網頁快照等場景。Free Spire.Doc for .NET作為一款免費的專業文檔處理庫&#xff0c;無需Microsoft Word依賴&#xff0c;即可輕松實現這一功能。本文將深入解析HTML文檔和字符串轉圖片兩…

【HTML-15.2】HTML表單按鈕全面指南:從基礎到高級實踐

表單按鈕是網頁交互的核心元素&#xff0c;作為用戶提交數據、觸發操作的主要途徑&#xff0c;其重要性不言而喻。本文將系統性地介紹HTML表單按鈕的各種類型、使用場景、最佳實踐以及高級技巧&#xff0c;幫助開發者構建更高效、更易用的表單交互體驗。 1. 基礎按鈕類型 1.1…

吳恩達MCP課程(4):connect_server_mcp_chatbot

目錄 完整代碼代碼解釋1. 導入和初始化2. 類型定義3. MCP_ChatBot 類初始化4. 查詢處理 (process_query)5. 服務器連接管理6. 核心特性總結 示例 完整代碼 原課程代碼是用Anthropic寫的&#xff0c;下面代碼是用OpenAI改寫的&#xff0c;模型則用阿里巴巴的模型做測試 .env 文…

C++內存學習

引入 在實例化對象時&#xff0c;不管是編譯器還是我們自己&#xff0c;會使用構造函數給成員變量一個合適的初始值。 但是經過構造函數之后&#xff0c;我們還不能將其稱為成員變量的初始化&#xff1a; 構造函數中的語句只能稱為賦初值&#xff0c;而不能稱作初始化 因為初…

MySQL 大戰 PostgreSQL

一、底層架構對比 ??維度????MySQL????PostgreSQL????存儲引擎??多引擎支持&#xff08;InnoDB、MyISAM等&#xff09;單一存儲引擎&#xff08;支持擴展如Zheap、Zedstore&#xff09;??事務實現??基于UNDO日志的MVCC基于堆表(Heap)的MVCC??鎖機制??…

基于FPGA的二叉決策樹cart算法verilog實現,訓練環節采用MATLAB仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 5.算法完整程序工程 1.算法運行效果圖預覽 (完整程序運行后無水印) MATLAB訓練結果 上述決策樹判決條件&#xff1a; 分類的決策樹1 if x21<17191.5 then node 2 elseif x21>17191…

【RAG】RAG綜述|一文了解RAG|從零開始(下)

文章目錄 5. RAG的架構5.1 Naive RAG5.2 Advanced RAG5.2.1 檢索前處理和數據索引技術5.2.2 知識分片技術5.2.3 分層索引5.2.4 檢索技術5.2.4.1 優化用戶查詢5.2.4.2 通過假想文檔嵌入修復查詢和文檔不對稱5.2.4.3 Routing5.2.4.5 自查詢檢索5.2.4.6 混合搜索5.2.4.7 圖檢索5.2…