install相关的api,在android 1.0时一个也没有。全是后续陆续增加进来的。
我们来看看他们的历史。
我们发现,除了4.2的是补充4.0的以外,基本上全是逢大版本才有更新:2.0,3.0,4.0,5.0都有新货。
功能:获取安装器的名字。
getter在android 2.0出现了,但是setter要到android 3.0才会出现。
原型:
功能:设置安装器的名字
功能:监听package verification广播。
功能:拓展校验的超时时间
功能:获取packageinstaller
从android 5.0开始,packagemanager提供了基于session的packageinstaller类。
packageinstaller类有4大组件,在后面的函数中都会用到,我们看一下它的结构:
要创建session,需要提供一个sessionparam对象。
sessionparams需要一个模式参数:
mode_full_install:新的apk会替换旧的apk的模式。
mode_inherit_existing:新的apk继承旧的apk.
sessionparams有下面的方法可以设属性:
setappicon:设置应用图标
setapplabel:设置应用标签
setapppackagename:设置应用包名
setinstalllocation:是否支持外置设备
setoriginatinguid:设置uid
setoriginatinguri:设置下载的uri
setreferenceuri:设置一个可选的uri
setsize: 这个session中的所用apk的总字节数
前一个sessionparams类都是set方法,这个sessioninfo类都是get方法
getappicon
getapplabel
getapppackagename
getinstallerpackagename
getprocess
getsessionid
isactive
上面两个类,一个都是getter,另一个都是setter,终于轮到session类出场了,它封装都是操作
openread:去读一个apk
openwrite:去写一个apk
fsync:将流写文件
commit:提交
close:关闭这个session
abandon:放弃这个session
getnames:列出都打开了哪些apk
setstagingprogress:设置进度
事件方法:
onactivechanged
onbadgingchanged
oncreated
onfinished
onprogresschanged
创建一个安装的session. 一旦session创建了,以后就可以继续用,重启之后仍然管用。
参数:params,上面刚讲过的sessionparams
createsession创建了之后,还得靠opensession去获取一个session对象去进行操作。
相当于调用session的abandon方法。
注册一个sessioncallback以接受事件
反注册callback
例程:
安装需要一个session,删除就不用了,直接调这个就好。