android9-PMS-常見問題及分析步驟

以下是基于 Android 9 的 Package Manager Service (PMS) 常見問題及分析步驟,結合系統原理與優化實踐整理:


🔧 一、開機性能問題

  1. 現象
    • 開機時間隨應用增多顯著延長,卡在“正在啟動應用”階段。
  2. 分析步驟
    ① 確認掃描階段耗時
    adb logcat | grep "PMS"  # 過濾 PMS 啟動日志
    
    • 檢查 /system/app/vendor/app/data/app 目錄掃描時間戳間隔。
      ② 定位瓶頸
    • 使用 systrace 抓取啟動過程:
      python systrace.py pm ss -t 10 -o pms_trace.html
      
      • 關注 scanDirLI()parsePackage() 線程阻塞情況。
        ③ 優化建議
    • 啟用 多線程掃描:確認 ro.pms.parallel_scan 是否開啟。
    • 檢查 緩存機制:驗證 /data/system/package_cache 是否有效復用。

🔒 二、權限控制異常

  1. 現象
    • 應用聲明權限仍被拒絕,或定制密碼鎖功能失效。
  2. 分析步驟
    ① 權限狀態驗證
    • 檢查 /data/system/packages.xml 中目標包名的 <perms> 標簽:
      <package name="com.example.app" ...><perms><item name="android.permission.CAMERA" granted="true"/></perms>
      </package>
      
    ② 密碼鎖邏輯排查
    • installPackageLI() 方法注入日志,確認密碼驗證鉤子是否觸發。
      ③ 簽名與權限匹配
    • 使用 apksigner verify 檢查 APK 簽名是否與權限聲明一致。

?? 三、應用安裝失敗

  1. 現象
    • 安裝進度條中斷,錯誤碼 INSTALL_FAILED_INVALID_APK 或靜默退出。
  2. 分析步驟
    ① 安裝階段日志
    • 過濾 PMS 安裝流程關鍵標記:
      adb logcat | grep "PackageManager: INSTALL"
      
      • 定位 INIT_COPYPARSE_PACKAGE 等階段異常。
        ② 存儲與權限檢查
    • 確認 /data/app 目錄剩余空間(df /data)及 SELinux 上下文(ls -Z /data/app)。
      ③ 解析器驗證
    • 手動執行解析測試:
      PackageParser parser = new PackageParser();
      parser.parsePackage(new File(apkPath), 0);  // 捕獲解析異常
      

📊 四、高頻問題總結表

問題類型關鍵檢查點工具/方法
開機慢多線程掃描啟用、緩存有效性systrace、package_cache 分析
權限失效packages.xml 權限狀態、簽名一致性日志分析、APK 簽名驗證
安裝失敗存儲空間、SELinux、APK 解析完整性adb logcat、手動解析測試

?? 五、深度優化建議

  1. 延遲非核心應用掃描
    • 修改 PMS 啟動邏輯,將用戶應用掃描推遲至 BOOT_COMPLETED 之后。
  2. 資源隔離策略
    • 通過 cgroups 限制 PMS 掃描線程的 CPU/IO 占用,避免與系統關鍵進程爭搶資源。
  3. 增量更新機制
    • 監聽應用目錄變更(如 inotify),僅掃描新增/修改的 APK。

:廠商定制功能(如密碼鎖)需確保 Hook 點覆蓋所有安裝路徑(ADB、PackageInstaller、靜默安裝)。

引用鏈接:
1.Android之PMS流程分析 - CSDN博客
2.Android 性能優化 | Android Open Source Project - Android
3.Android9.0 PMS安裝第三方app時添加密碼鎖限制安裝 - CSDN下載
4.Android 應用程序安裝流程解析 - 掘金開發者社區
5.Android PMS——系統應用掃描解析(三) - CSDN下載
6.Android PMS 優化開機速度深度優化方案 - 掘金開發者社區
7.深入解析 Android PMS —— APK 安裝與解析全流程 - CSDN博客
8.Camera & media dev center - Android
9.Android 開機過程PMS分析 - 博客園
10.解析包時出現問題的終極解決指南:從基礎排查到高階技巧 - 怯流年et
11.android系統 pms詳解 - CSDN博客
12.android pms常見問題,Android 系統服務 - PMS 的啟動過程 - CSDN博客
13.Android應用程序無法在Android 9版本上啟動 - 騰訊云
14.添加許可名單 - Android
15.教你用旺季數據反哺淡季銷售,80%的酒店PMS都用錯(下) - 禧住
16.Android P(9.0) 關閉DEXPREOPT后每次開機都DEXOPT導致開機很久 - CSDN
17.基于Android的程序設計(畢業設計)常見問題 - 忙著搬磚的程序員
18.酒店民宿PMS軟件的風險與防范措施 - 蘇黎
19.Android Framework中PackageManagerService的深度剖析 - 洪信智能
20.(OK) Android PackageManagerService分析一:PMS的啟動轉載 - 51CTO博客
21.被忽略的女性情緒怪獸:經前綜合癥PMS,它吃掉了我們的效率和活力 - 嗶哩嗶哩
22.你知道什么是PMS嗎?經前期綜合征。這些情緒其實是有原因的! - 嗶哩嗶哩
23.您知道經前綜合癥嗎? - 度小視
24.什么是pms - 當公主好難
25.汽車pms是什么 - 駕途答疑社
26.【啵啵】酷酷閨蜜安慰PMS的你,一邊化妝一邊嘮嗑 對話感滿滿的安心 - 嗶哩嗶哩
27.關于《經前綜合征》PMS的科普 - 嗶哩嗶哩

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

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

相關文章

生成模型實戰 | GLOW詳解與實現

生成模型實戰 | GLOW詳解與實現0. 前言1. 歸一化流模型1.1 歸一化流與變換公式1.2 RealNVP 的通道翻轉2. GLOW 架構2.1 ActNorm2.2 可逆 11 卷積2.3 仿射耦合層2.4 多尺度架構3. 使用 PyTorch 實現 GLOW3.1 數據處理3.2 模型構建3.3 模型訓練0. 前言 GLOW (Generative Flow) 是…

行業案例:杰和科技為智慧教育構建數字化硬件底座

清晨8點10分&#xff0c;深圳某學生踏入校園&#xff0c;智慧門閘識別身份&#xff0c;并同步發給家長&#xff1b;走廊里的“智慧班牌”向他們展示今日的課表&#xff1b;課堂上&#xff0c;教室前方的多媒體播放器里&#xff0c;老師引導學生學習“居民樓消防隱患”知識&…

Redis與MySQL數據同步:從“雙寫一致性”到實戰方案

Redis與MySQL數據同步&#xff1a;從“雙寫一致性”到實戰方案 在分布式系統中&#xff0c;Redis作為高性能緩存被廣泛使用——它能將熱點數據從MySQL中“搬運”到內存&#xff0c;大幅降低數據庫壓力、提升接口響應速度。但隨之而來的核心問題是&#xff1a;當MySQL數據更新時…

Java源碼構建智能名片小程序

在移動互聯網時代&#xff0c;紙質名片的局限性日益凸顯——信息更新不便、客戶管理困難、營銷效果難以追蹤。智能電子名片小程序以其便捷、高效、智能的特點&#xff0c;正成為商務人士的"數字營銷門戶"。而基于Java技術棧開發的智能名片系統&#xff0c;憑借其穩定…

如何在短時間內顯著提升3D效果圖渲染速度?

在建筑設計、游戲開發、影視制作等行業&#xff0c;3D效果圖的渲染速度是項目進度與效率的關鍵瓶頸。面對復雜場景時&#xff0c;漫長的渲染等待尤為突出。要在保證質量的前提下大幅縮短渲染時間&#xff0c;以下優化策略至關重要&#xff1a; 1. 升級硬件配置&#xff1a;渲染…

配置daemon.json使得 Docker 容器能夠使用服務器GPU【驗證成功】

&#x1f947; 版權: 本文由【墨理學AI】原創首發、各位讀者大大、敬請查閱、感謝三連 文章目錄&#x1f50d;你遇到的錯誤&#xff1a;&#x1f50d; 根本原因? 解決方案&#xff1a;正確安裝 NVIDIA Container Toolkit? 第一步&#xff1a;卸載舊版本&#xff08;如果存在&…

Linux 系統進程管理與計劃任務詳解

Linux 系統進程管理與計劃任務詳解 一、程序與進程的基本概念 程序&#xff1a;保存在外部存儲介質中的可執行機器代碼和數據的靜態集合。進程&#xff1a;在CPU及內存中處于動態執行狀態的計算機程序。關系&#xff1a;每個程序啟動后&#xff0c;可創建一個或多個進程。 二、…

【圖像處理】直方圖均衡化c++實現

直方圖均衡化是一種通過調整圖像像素灰度值分布&#xff0c;來增強圖像對比度的經典數字圖像處理技術。其核心在于將原始圖像的灰度直方圖從集中的某個區間“拉伸”或“均衡”到更廣泛的區間&#xff0c;讓圖像的明暗細節更清晰&#xff0c;關鍵在于利用累積分布函數實現灰度值…

Web前端實戰:Vue工程化+ElementPlus

1.Vue工程化 1.1介紹 模塊化&#xff1a;將js和css等&#xff0c;做成一個個可復用模塊組件化&#xff1a;我們將UI組件&#xff0c;css樣式&#xff0c;js行為封裝成一個個的組件&#xff0c;便于管理規范化&#xff1a;我們提供一套標準的規范的目錄接口和編碼規范&#xff0…

ECMAScript2021(ES12)新特性

概述 ECMAScript2021于2021年6月正式發布&#xff0c; 本文會介紹ECMAScript2021(ES12)&#xff0c;即ECMAScript的第12個版本的新特性。 以下摘自官網&#xff1a;ecma-262 ECMAScript 2021, the 12th edition, introduced the replaceAll method for Strings; Promise.any,…

Tlias 案例-整體布局(前端)

開發流程前端開發和后端開發是一樣的&#xff0c;都需要閱讀接口文檔。 準備工作&#xff1a; 1&#xff1a;導入項目中準備的基礎過程到 VsCode。2&#xff1a;啟動前端項目&#xff0c;訪問該項目3&#xff1a;熟悉一下基本的布局<script setup></script><tem…

三十二、【Linux網站服務器】搭建httpd服務器演示虛擬主機配置、網頁重定向功能

httpd服務器功能演示一、虛擬主機配置虛擬主機技術全景虛擬主機目錄規范1. 基于端口的虛擬主機&#xff08;8080/8081&#xff09;2. 基于IP的虛擬主機&#xff08;192.168.1.100/192.168.1.101&#xff09;3. 基于域名的虛擬主機&#xff08;site1.com/site2.com&#xff09;二…

串行化:MYSQL事務隔離級別中的終極防護

在現代應用程序中&#xff0c;數據的一致性和可靠性至關重要。想象一下&#xff0c;如果在一個銀行系統中&#xff0c;兩個用戶同時試圖轉賬到同一個賬戶&#xff0c;最終的數據結果可能會出乎意料。為了避免這種情況&#xff0c;MYSQL提供了不同的事務隔離級別&#xff0c;其中…

RAG:檢索增強生成的范式演進、技術突破與前沿挑戰

1 核心定義與原始論文 RAG&#xff08;Retrieval-Augmented Generation&#xff09;由Facebook AI Research團隊于2020年提出&#xff0c;核心思想是將參數化記憶&#xff08;預訓練語言模型&#xff09;與非參數化記憶&#xff08;外部知識庫檢索&#xff09;結合&#xff0c…

2024年藍橋杯Scratch10月圖形化stema選拔賽真題——旋轉的圖形

旋轉的圖形編程實現旋轉的圖形。具體要求1&#xff09;點擊綠旗&#xff0c;在舞臺上出現滑桿形式的變量 r&#xff0c;取值范圍為-1、0、1&#xff0c;默認值為 0&#xff0c;如圖所示&#xff1b;2&#xff09;1秒后&#xff0c;在舞臺上繪制出一個紅色正方形&#xff08;邊長…

【音視頻】WebRTC 開發環境搭建-Web端

一、開發環境搭建 1.1 安裝vscode 下載VSCode&#xff1a;https://code.visualstudio.com/&#xff0c;下載后主要用于開發Web前端頁面&#xff0c;編寫前端代碼 安裝完成后下載Live Server插件&#xff0c;用于本地開發&#xff0c;實時加載前端頁面 1.1.1 前端代碼測試 下…

力扣54:螺旋矩陣

力扣54:螺旋矩陣題目思路代碼題目 給你一個 m 行 n 列的矩陣 matrix &#xff0c;請按照 順時針螺旋順序 &#xff0c;返回矩陣中的所有元素。 思路 思路很簡單創建一個二維數組然后按照箭頭所示的順序一層一層的給二維數組相應的位置賦值即可。難點是我們是一層一層的賦值…

【CSS】設置表格表頭固定

1.設置thead樣式在thead元素中增加樣式&#xff1a;position: sticky;top: 0;2.設置table樣式在table元素中增加樣式&#xff1a;border-collapse: separate; /* 分離邊框模式 */ border-spacing: 0;3.設置表頭偽元素樣式增加樣式&#xff1a;th::after {content: ;position: a…

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現標簽條碼一維碼的檢測(C#代碼,UI界面版)

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現標簽條碼一維碼的檢測&#xff08;C#代碼&#xff0c;UI界面版&#xff09;&#xff09;工業相機使用YoloV8模型實現標簽條碼一維碼的檢測工業相機通過YoloV8模型實現標簽條碼的檢測的技術背景在相機SDK中獲取圖像轉換…

如何編寫好的測試用例?

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快對于軟件測試工程師來說&#xff0c;設計測試用例和提交缺陷報告是最基本的職業技能。是非常重要的部分。一個好的測試用例能夠指示測試人員如何對軟件進行測試。在…