PMS 启动流程
2024-08-31 02:17:03
1.在SystemServer中启动PackageManagerService.main
2.newPackageManagerService()并添加到ServiceManager中
3.newinstaller(建立installer和installd的socket连接,最终在底层实现install,remove,dexopt等功能)
4.通过systemConfig获取到xml文件中信息
5.创建PackageHandler Message Looper(安装/卸载请求)
6.readPLW()(读取data/system/packages.xml)
7.
检查/system/etc/permissions/platform.xml中定制的library及/system/framework下的jar档案是否需要dex提取进行优化。
若需要优化,会调用installer.dexopt提取dex到/data/dalvik-cache中
8.调用scanDirLI扫描存放apk的各个目录
9.系统应用安装—通过scanPackageLI逐一解析AndroidManifest.xml文件,建立每个apk的配置结构,并将apk配置信息添加到全局列表进行管理。
10.调用writeLPr()从全局列表中将apk信息写到packages.xml和packages.list中。
最新文章
- 创建 MIME 类型////////////zzz
- 布局 - layout
- Azure IaaS 用户手册 - 第一部分
- Java初学--无限循环
- 使用过的Linux命令
- 51Nod 1405 树的距离之和 (树dp)
- DNS服务器搭建
- linux 文件在磁盘上的表示
- Spark Streaming揭秘 Day9 从Receiver的设计到Spark框架的扩展
- ashx文件结合ajax使用(返回json数据)
- HDOJ 1098 Ignatius's puzzle
- 2013腾讯编程马拉松初赛第〇场(3月20日)湫湫系列故事——植树节 HDOJ 4503
- PHP正则提取HTML中img的url值
- [GDUT 决赛]--GCD,LCM——我是好人(数论)
- [WPF] 动画Completed事件里获取执行该动画的UI对象
- Excel 删除所有错误公式
- 【Loadrunner】初学Loadrunner——参数化设置(Xml类型)
- HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者(基础巴什博奕)
- 《第一行代码 android》 读书笔记:找出当前界面对应的Activity
- ISP PIPLINE (九_2) Denoise 之 time domain denoise
热门文章
- 在树莓派上编译安装golang环境
- my discipline life
- Angular02 通过angular-cli来搭建web前端项目
- AdaBoostRegressor
- 浴室沉思:聊聊DAL和Repository
- 【批处理学习笔记】第十四课:常用DOS命令(4)
- Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)(A.暴力,B.优先队列,C.dp乱搞)
- 安装myeclipse后,打开时弹出:“该站点安全证书的吊销证书不可用”,怎样解决?
- sublimeserver启动本地服务器(sublime text)
- VIM 文件搜索与替换