Android系统在初始化时,PackageManager的底层实现类PackageManagerService 回去扫描系统的/data/system/目录下的packages
.xml文件,这个文件包含了所有的apk的包信息,当Apk安装、删除升级时,这个xml同样也会更新
packages.xml文件解析:
好吧 太多了,吓着我了
<permissions>标签 定义了目前系统中的所有权限,分为系统原有的(package属性为android的) 和 Apk自定义的(package属性为Apk的包名)
<package>代表一个apk的属性
name,apk's package name
codePath,安装路径 /system/app /data/app 系统应用和第三方应用
system,如果安装在 /system/app则为true 如果安装在 /data/app则为false
version Apk 版本号
userId 用户id
<perms>对应清单文件的<uses-permission>标签,记录Apk权限信息