android apk 安装过程

一、android apk 安装过程:android apk的安装过程分为以下四个过程:
将原始apk复制到/data/app/目录下(也有将so文件拷到这个文件夹下的,虽然apk理由也有so文件);
在data/data/目录下为app创建数据目录,运行app产生的数据和缓存放在这里面,比如说cache,database,file等;
将apk里面的字节码文件(.dex)进行优化,然后放在data/dalvik-cache/里面下(ART虚拟机在这个文件下还分了cpu架构子目录,比如说arm,x86等),这里的优化分为两种情况:
1)dalvik虚拟机会将.dex文件优化成.odex文件,但是他们都是字节码;
2)ART 虚拟机会将.dex文件优化成.oat机器码。
将应用程序信息在系统进行注册,比如包管理系统等。
app运行的时候,会从data/dalvik-cache/里面读取优化后的文件(.odex或者.oat文件),资源文件的话,还是会从apk里面读取(
根据resource.arsc文件找到相应的资源文件)
其他相关信息:
Dalvik:是Google公司自己设计用于Android平台的Java虚拟机。
在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效,但让应用安装比较快,而且更容易在不同硬件和架构上运行。
dex格式:是专为Dalvik应用设计的一种压缩格式,适合于内存和处理器速度有限的系统。
ART(Android Runtime):ART则是使用AOT进行处理(Ahead-Of-Time),并会在应用程序安装完毕时,进行预先的基础性编译作业,这就减去了JIT运行时的机器码转化时间,应用的启动和执行都会变得更加快速。

Dalvik:安装快,占用内存小;运行时需要先将字节码转为机器码,运行速度慢。
ART:安装慢,占用内存大;运行时直接读取机器码,进行速度快。
Dalvik和ART的本质区别就是:Dalvik优化的时候是将.dex字节码转为.odex字节码文件,最后还是字节码,而ART是将.dex字节码转为.oat机器码。而运行的时候,识别的是机器码。

posted @ 2017-10-10 16:27  qqbook  阅读(707)  评论(0编辑  收藏  举报