PackageManagerService 简析
PackageManagerServicePackageManager一个接口而已它的实现类是ApplicationPackageManager但是当你去研究ApplicationPackageManager的源码的时候你会发现它的功能其实都是通过一个mPM的变量完成的它的类型是IPackageManager类型它就是PackageManagerService在客户端的一个代理通过这个代理客户端可以调用到PackageManagerService中的一些方法如获取某一个应用的版本号其实版本号这些信息最终都是保存在PackageManagerService中的我们只有通过mPM这个代理才能拿到这些信息。提供一个ApplicationInfo的所有信息提供权限相关信息提供一个安装包信息安装、卸载、更新app功能PackageManagerService主要是用来处理apk的安装卸载和应用程序信息的获取的。完成诸如权限校捡(checkPermission,checkUidPermission)Apk meta信息获取(getApplicationInfo等)四大组件信息获取(query系列方法)等重要功能PackageInstallerService管理应用的安装过程。Installer 对app进行操作安装、卸载、更新、迁移重要目录/data/systempackages.xml:记录apk的permissions,flags,ts,version,uesrid等信息这些信息主要通apk的AndroidManifest.xml解析获取当系统进行程序安装、卸载和更新等操作时均会更新该文件。packages-backup.xml : 备份文件packages-stopped.xml : 记录被用户强行停止的应用的Package信息packages-stopped-backup.xml : pakcages-stoped.xml文件的备份packages.list : 记录非系统自带的APK的数据信息这些APK有变化时会更新该文件应用安装涉及到的目录system/app系统自带的应用程序无法删除system/priv-app: 比/system/app权限优先级更高可以拿到ApplicationInfo.PRIVATE_FLAG_PRIVILEGED特殊权限vendor/app: odm或者oem厂商预制系统App目录vendor/priva-app: 同上data/app用户程序安装的目录有删除权限。安装时把apk文件复制到此目录data/data存放应用程序的数据。无论是系统App还是普通App,App产生的用户数据都存放在/data/data/包名/目录下。data/user/App数据目录data/dalvik-cache将apk中的dex文件安装到dalvik-cache目录下。于32位和64位的机器码有所区别因此这个目录下还会通过子文件夹对oat文件进行分类。/data/dalvik-cache/arm//data/dalvik-cache/arm64/PMS构造方法中处理配置文件1、先读取packages.xml文件内容解析并保存在成员变量mSettings中。2、扫描设备中的几个分区目录下的应用文件把扫描结果保存到PMS的mPackages中。这记录的是当前系统中的应用状态信息3、后面就是对两次的应用状态信息进行比对、重新调整、扫描特定目录。4、最后将应用信息重新写回packages.xml文件APK的安装过程将apk文件复制到程序目录下(/data/app/)解压并扫描安装包为应用创建数据目录(/data/data/package name/)、提取dex文件到指定目录(/data/delvik-cache/)、修改系统包管理信息。PMS 处理 APP 安装PackageHandle处理安装消息。PMS通过向PackageHandle发送消息驱动APK复制和安装。复制APK。绑定DefaultContainerService复制比较耗时运行在另一个进程。安装APK检查在安装前检查是否环境的可靠如果不可靠会清除复制的APK文件。安装installPackageTracedLI其内部会调用PMS的installPackageLI方法进行APP安装。收尾处理安装后操作如果安装不成功删除掉安装相关的目录与文件。

相关新闻

【OpenCV】Python图像处理之查找并绘制轮廓

【OpenCV】Python图像处理之查找并绘制轮廓

本文旨在帮助掌握 OpenCV-Python 中图像轮廓的查找与绘制方法,轮廓是图像中连续的、具有相同像素值的边界曲线,是图像分割、目标检测、形状分析的核心工具。OpenCV 中通过cv2.findContours()查找轮廓,cv2.drawContours()绘制轮廓,…

2026/7/6 21:36:24 阅读更多 →
全网首发!万字硬核解析:如何用向量引擎API构建企业级GPT-5.2与Sora2双模态中台(附完整源码+架构图)

全网首发!万字硬核解析:如何用向量引擎API构建企业级GPT-5.2与Sora2双模态中台(附完整源码+架构图)

摘要本文不仅仅是一篇教程。 更是一次对当下AI开发模式的深度反思与重构。 随着GPT-5.2、Sora2、Veo3等核弹级模型的相继发布。 传统的“单点直连”开发模式已经彻底崩塌。 面对高昂的维护成本、复杂的网络环境以及碎片化的接口标准。 我们迫切需要一种新的架构思想。 本文将通…

2026/7/7 15:54:12 阅读更多 →
HGDB数据库时区修改

HGDB数据库时区修改

文章目录环境文档用途详细信息环境 系统平台:N/A 版本:4.1.1,4.3.2 文档用途 用于指导HGDB修改时区的操作 详细信息 1、查看系统时间与时区 –linux系统 [rootlocalhost ~]# date -R Fri, 27 Jul 2018 14:37:48 0800 –Windows系统 控制面板–…

2026/7/3 16:41:42 阅读更多 →

最新新闻

TPD2015FN智能功率开关在工业负载控制中的应用

TPD2015FN智能功率开关在工业负载控制中的应用

1. 项目背景与核心器件选型在工业自动化控制系统中,电感负载(如电磁阀、继电器线圈)和电阻负载(如加热元件)的精确控制一直是设计难点。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18LF4680微控制…

2026/7/8 14:38:15 阅读更多 →
AI辅助API文档生成:从Swagger注解到智能化接口说明

AI辅助API文档生成:从Swagger注解到智能化接口说明

AI辅助API文档生成:从Swagger注解到智能化接口说明 一、从"手动注解"到"智能生成"的文档工程演进 API文档的维护成本是后端团队的隐性负担:Swagger注解与代码逻辑的耦合导致每次接口变更都要同步修改注解,而注解中的业务…

2026/7/8 14:34:13 阅读更多 →
定时器Timer详解:计数、延时、PWM输出和输入捕获一次讲清

定时器Timer详解:计数、延时、PWM输出和输入捕获一次讲清

定时器Timer详解:计数、延时、PWM输出和输入捕获一次讲清 一、本文适用场景 定时器 Timer 是单片机中非常核心的基础外设。无论是 STM32、GD32、51 单片机,还是其他 MCU,只要涉及时间控制、周期任务、PWM 输出、测频率、测脉宽,基…

2026/7/8 14:28:08 阅读更多 →
B站视频转Markdown笔记:构建个人AI知识库的完整指南

B站视频转Markdown笔记:构建个人AI知识库的完整指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在实际学习过程中,很多人习惯把 B 站的优质视频教程、技术分享、深度解析等内容收藏起来,打算“以后再看”。但…

2026/7/8 14:28:08 阅读更多 →
Windows系统文件Chakradiag.dll丢失找不到问题解决

Windows系统文件Chakradiag.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/7/8 14:26:06 阅读更多 →
机器学习实验平台数据预处理避坑:发电场数据.xlsx 读取与划分的3个常见错误及解决

机器学习实验平台数据预处理避坑:发电场数据.xlsx 读取与划分的3个常见错误及解决

机器学习实验平台数据预处理避坑指南:发电场数据.xlsx 读取与划分的3个常见错误及解决 在机器学习项目的全流程中,数据预处理环节往往占据70%以上的工作量,而Excel文件作为企业数据存储的常见载体,其读取与处理过程中的陷阱可能直…

2026/7/8 14:24:05 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻