Android 7.0 应用4种安装方式流程图
2018-07-26 16:45:34 0 举报
Android 7.x apk安装的4种方式流程图汇总 1、系统启动安装; 2、adb安装 ; 3、在线下载安装; 4、SD卡中点击apk文件安装
作者其他创作
大纲/内容
签名安全策略在此处添加
是否抛出异常
进入switch的INIT_COPY条件,再进入MCS_BOUND条件
PackageInstallerActivity.java中onCreate()
弹出界面点击OK,会执行startInstall(),跳转到安装界面
是
scanDirTracedLI(...)
checkIfAllowedAndInitiateInstall()
InstallAppProgress界面的onCreate()--initView()
doCommitSession()
调用processPendingInstall()方法
PackageInstallerSession实际实现了commit,用handler发送了一个MSG_COMMIT消息
调用scanDirLI扫描的内容
installExistingPackage
pm.installExistingPackage,实质不涉及到安装的东西
doHandleMessage(msg)
调用HandlerParams 类的startCopy()方法
startInstallConfirm()
入口2从网络下载APK自动安装
安装失败
各种验证(签名等)将上一步解析的到的信息保存到PKMS中,方便给AMS调用
是否已安装
PackageManagerService构造函数
执行installNewPackageLI或者replacePackageLI
调用Packagemanager的mPm.installStage()方法
入口4从SD点击安装APK
android\\frameworks\\base\\cmds\\pm\\src\\com\\android\\commands\\pm\\pm.java
否
initiateInstall()
入口3adb安装APK
mHandler发送INIT_COPY消息
执行installPackageLI()方法
scanDirLI(...)
调用runInstall()方法
安装成功
进入PackageHandler的handleMessage方法
调用handleReturnCode()方法
PackageInstaller.Session的commit()
该方法的几项重要工作:1.建立ResolverActivity的内存对象就是当发出一个Intent,如果有多个Activity响应该Intent的Activity,会弹出一个对话框让用户选择,这个对话框就是ResolverActivity。2.处理带有original-package标签的应用3.校验签名(verifySignaturesLP)4.检查ContentProvider名称5.确定应用将来的进程名称6.创建应用的数据目录7.安装动态库8.重新优化dex9.提取应用中的组件信息到PackageManagerService的成员变量中。
Android 7.0 应用4种安装方式的执行流程
doPackageStage
入口1开机启动安装APK
commitLocked()
0 条评论
回复 删除
下一页