前面,我们花了相当多的篇幅把packagemanager的公开api分门别类,并按版本顺序讲解了发展的过程。
有的同学问了,既然installer相关的api在android 5.0才引入,那么android 4.4及之前的应用安装的程序是怎么写出来的呢?
答案是,还有未公开的内部api啊。
这些api有些在未来的版本中就被转正了。
android 4.4的不公开api大致分为以下几类:
uid相关:uid相关查询没有公开
多用户相关:用户相关的可能不宜公开吧
权限相关:提供比公开版更高的权限
安装和清理相关:核心功能在这一版还没有公开
这个api我们上节讲过,直到android 7.0才公开。
原型:
根据sharedusernanme来获取对应的uid
比起公开的api,可以指定userid.
支持userid的resolveactivity
支持userid的queryintentactivities
支持userid的queryintentservices
支持userid的queryintentcontentproviders
虽然没有叫asuser,但是还是一个增加了userid的版本。
生成权限操作的intent
为某个包授权
回收grantpermission授予的权限
公开的install相关的api要android 5.0才有。所以android 4.4的应用只能使用隐藏的系统api来进行install相关的操作。
安装一个包
安装一个包,同时带校验
不仅带校验,而且还加密。
安装一个已经存在的包
uninstall一个应用
清理应用数据
清理应用缓存
清理存储
清理存储的另一个版本
获取包的大小
多用户版:
虽然不uninstall,但是使应用进入不可用的状态。
设置blocking
读取blocking
原型: