PackageManagerService——掌管APP的安装、卸载和查询
来源:互联网 发布:星巴克巧克力知乎 编辑:程序博客网 时间:2024/06/05 09:17
1、vold.decrypt系统属性可以指定android设备是否加密,如果加密(即该属性值为1或者“trigger_restart_min_framework”),onlyCore设置为true,那么PackageManagerService将只会扫描系统库;
2、SystemServer判断系统是否初次启动,是调用了PKMS的isFirstBoot()函数,由于PKMS启动后会生成一些文件(data/system目录),所以isFirstBoot函数就是通过读取这些文件(Settings的readLPw函数)判断是否首次启动的;
3、SystemServer会调用PKMS的performBootDexOpt()函数,实现dex优化(但当通过系统属性ro.build.type得知此系统为eng版本时,将不对package做dex优化);
4、PKMS的构造函数需要比较长的执行时间,这也是Android系统启动费时的主要原因之一。PKMS会扫描系统几个目标文件夹的APK,并建立各种便于管理和查询的数据结构,完成APK包信息从物理文件到内存数据的加载过程。工作的过程无非就是扫描解析,比较简单,但这些用来存储解析结果的数据结构,以及它们之间的相互关系非常复杂;
5、PKMS的成员变量mSdkVersion,在定义时便取系统属性ro.build.version.sdk的值进行初始化,如果没有定义,APK将无法知道自己运行在Android的哪个版本上;
6、据说UserManager对象,按照google的设想,将实现每个user安装自己的应用,使得手机支持多个user,为企业版android打基础;
7、/system/etc/permissions目录存放了许多xml文件,都是系统权限相关的配置文件,如platform.xml建立了权限名与gid的映射关系;
8、/system/frameworks/framework-res.apk,定义了系统常用的资源,还有几个重要的Activity,如长按Power键后弹出的选择框;
9、PKMS除了负责系统中apk的安装、升级、卸载之外,对外提供统一的查询信息是其主要职责,包括查询系统中匹配某Intent的Activity、BroadcastReceiver或service;
10、PKMS的构造函数中传递了一个Installer类型的参数,java层的Installer类通过socket和后台服务installd交互,托付installd完成一些dex优化等操作,这里是一个通过socket实现跨进程交互的很好范例。
- PackageManagerService——掌管APP的安装、卸载和查询
- Android N -- APK包的安装、卸载和优化(PackageManagerService)(一)
- Android5.1--APK包的安装、卸载和优化(PackageManagerService)(二)
- Android5.1(Android N)--APK包的安装、卸载和优化(PackageManagerService)(三)
- Android5.1--APK包的安装、卸载和优化(PackageManagerService)
- Android5.1--APK包的安装、卸载和优化(PackageManagerService)(二)
- Android L-preview PackageManagerService启动、安装和卸载分析
- 监听App的安装和卸载
- Kernel Module 的安装, 卸载 和 查询
- APP的安装卸载测试
- APP的安装卸载测试
- Android Fk-PKMS(2) PackageManagerService之应用的安装与卸载
- android模拟器上安装和卸载app程序的方法
- Android 模拟器上app程序的安装和卸载
- Android实践 -- App的静默安装和卸载
- Linux 中如何查询和卸载已安装的软件
- Linux 中如何查询和卸载已安装的软件 .
- Linux 中如何查询和卸载已安装的软件
- 2017.5.15 项链工厂 思考记录
- Altium Designer 电路设计1
- php7+apache2.4+phalcon 问题 How to enable rewrite module in Apache
- vue自定义指令
- C++primer学习笔记-----6.5特殊用途语言特性
- PackageManagerService——掌管APP的安装、卸载和查询
- 如何实现本机Windows连接虚拟机中的CentOS
- jira6.3.6破解版本安装指导
- 数独游戏--判断现有数字是否有解--不管是否最终有解Valid Sudoku
- 高并发下的数据库设计水平分区之一篇
- 强大的集合操作类Stream(二)
- 特殊符号 UNICODE编码
- 三极管最简单易懂原理总结
- CAD在线预览思路