【Apk】安装

Apk安装有四种方式:
1、开机安装——厂商预装,没有安装界面,系统级别安装;
2、网络下载安装——通过市场Market安装,没有安装界面;
3、ADB安装——有安装界面;
4、第三方应用安装——有安装界面。

Apk安装涉及到的目录:
system/app:系统预装App;
data/app:用户App;
data/data:用户App数据文件;
data/dalvik-cache:存放Appdex文件。

安装过程:
把Apk文件放在data/app下,解压扫描Apk文件,把dex文件保存dalvik-cache目录,并data/data目录下创建对应的应用数据目录。
卸载过程:
杀死进程,删除安装过程中在上述三个目录下创建的文件及目录。

安装过程解析:
1、开机安装
scanDirLI(File dir, int flags, int scanMode, long currentTime)
扫描路径找到可安装文件
PackageParser.Package scanPackageLI(File scanFile, int parseFlags, int scanMode, long currentTime)
扫描apk文件,获取载入pacakge信息;
mInstaller.install(pkgName, useEncryptedFSDir, pkg.applicationInfo.uid,pkg.applicationInfo.uid);
指挥installd在C语言的文件中完成工作

2、从网络上下载应用
会自动调用Packagemanager的安装方法
installPackage(final Uri packageURI, final IPackageInstallObserver observer, final int flags, final String installerPackageName)

PackageHandler–>processPendingInstall–>installPackageLI–>installNewPackageLI–>scanPackageLI……

3、从ADB工具安装
showUsage()–> runInstall()
PackageInstallObserver obs = new PackageInstallObserver();
mPm.installPackage(Uri.fromFile(new File(apkFilePath)), obs, installFlags, installerPackageName);
IPackageManage mPm;
mPm = IpackageManager.Stub.asInterface(ServiceManager.getService(“package”));

4、第三方安装
InstallAppProgress–>Packagemanager.installPackeage()……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值