Android apk安装及编译过程

本文简要分析了Android apk在Dalvik和ART两种虚拟机下的安装过程。在Dalvik中,安装涉及dexopt优化生成odex文件,而ART则通过dex2oat预编译生成.oat文件。两者都在安装后对dex文件进行处理以提升应用启动速度。删除对应dex文件会导致运行时崩溃。
摘要由CSDN通过智能技术生成

注:本文不对apk安装之前,系统所做的复杂工作做分析,只针对普通的apk安装过程进行简单的过程理解

一般情况下,在apk安装时,系统一般会显示一个安装界面,获取用户同意之后进行安装,并且有一些apk预处理相关的操作,紧接着,会启动app界面,进入app。
在这一过程中,不同版本的Android系统在安装时,对包的处理是不太一样的,以下分Dalivk、ART两种虚拟机进行分析。这里主要采用原生模拟器,进行分析。

一、 Dalvik(JIT:just in time 即时编译)

  • 过程分析:

    • 点击apk包后或apk下载后,安装之前,系统会启动安装界面PackageInstallerActivity,让用户进行授权选择,用户同意后,会调用ApplicationPackageManager 进行相关操作。
    • 调用ApplicationPackageManager,通过IPC来调用 PackageManagerService 中的 installPackage 方法,在这个方法中,又去调用 installPackageAsUser 方法,此时,要进行权限相关校验,完毕之后,会通过 handler 发送消息(类型:INIT_COPY,MCS_BOUND)
    • 然后 startCopy —> handleStartCopy 依次调用,这里,对安装位置、存储空间进行处理,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值