常见问题

Android系统app安装(android应用安装到指定user)不看后悔,

时间:2024-06-28 16:46:25 来源:快捷一键重装官网 人气:33

核心提示: 更多内容,欢迎关注微信公众号:tmac_lover这篇文章介绍一下Android里安装一个apk文件的完整流程,我们以pm install安装一个新的app为例介绍。 1. pm命令当我们使用 pm install -r /sdcard/test.apk这样的pm命令来…...

更多文本,热烈欢迎高度关注QQ社会公众号:tmac_lover

这首诗如是说呵呵Android里加装两个apk文档的完备业务流程,他们以pm install加装两个捷伊app为例如是说。

1. pm指示

当他们采用

pm install -r /sdcard/test.apk

这种的pm指示来加装app的这时候, 最终初始化的是Pm.java的runInstall()方式

private int runInstall() { 控制系统重装 ... ... mPm.installPackageAsUser(apkFilePath, obs.getBinder(), installFlags, installerPackageName, verificationParams, abi, userId); ... ... }

最终透过binder初始化Packag控制系统重装eManagerService.java的installPackageAsUser()方式,接着就已经开始或者说的展开apk的加装组织工作。能看见,pm install指示展开app加装的这时候,是不能历经PackageInstaller的。

2. PackageManagerService

installPackageAsUser()方式里同时实现apk的加装主要就能分四个期。他们先看下整体时序:

方便快捷全屏重装控制系统

2.1 预备控制系统重装

在展开app加装以后,须要先做许多预备组织工作。

public void installPackageAsUser(String originPath, IPackageInstallObserver2 observer, int installFlags, String installerPackageName, VerificationParams verificationPar控制系统重装ams, String packageAbiOverride, int userId) { ... ... final Message msg = mHandler.obtainMessage(INIT_COPY); msg.obj = new InstallParams(origin, null, observer, instal控制系统重装lFlags, installerPackageName, null, verificationParams, user, packageAbiOverride, null); mHandler.sendMessage(msg); }

这里先构造了两个InstallParams对象,这里存放许多app文档加装须要的信息,比如apk文档的路径,加装时的控制系统重装flags, 以及加装完成之后的回调等等。接着透过Handler发送一条INIT_COPY消息。

class PackageHandler extends Handler { void doHandleMessage(Message msg) { switch (msg.what) { case INIT