把一首歌名的一个字改成“屌”是什么效果?!

Dalvik虚拟机与ART虚拟机

2018-12-01  本文已影响0人  Guoozx

一.储备阅读:

1.Android 打包过程

打包流程图:

Android打包流程.png

2.Android AAPT详解

AAPT - Android Asset Packaging Tool---Android资源打包工具

①.入口 /frameworks/base/tools/aapt/Main.cpp
②.分发指令 /frameworks/base/tools/aapt/Main.cpp
③.处理package指令 /frameworks/base/tools/aapt/Command.cpp
    这个过程主要是对资源配置信息进行校验,Android应用程序资源的组织方式有18个维度,包括mcc(移动国家代码)、mnc(移动网络代码)、local(语言区域)等。
    该代码的主要实现是在 /framewors/base/tools/aapt/AaptConfig.cpp 里的parse方法。解析完成的数据,会丢给WeakResourceFilter类中的一个向量集合成员mConfigs。
 ④.编译res和xml资源 /frameworks/base/tools/aapt/Resource.cpp
    首先解析manifest文件,调用的是parsePackage函数,解析之前,manifest被封装成一个AaptGroup对象。
 ⑤.完成上述的编译资源的工作以后,对于manifest.xml一直都是读取里面的配置信息,并没有编译,所以最后一步就是把manifest.xml编译成二进制文件
 ⑥.最后一步,将上述的编译结果输出到R.java和Apk中。其中还会输出混淆文件,java符号表等。

二.Dalvik虚拟机详解

理解Android虚拟机体系结构

Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。

该篇文章引出的相关文章都需要进一步去看.

三.ART

在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效,但让应用安装比较快,而且更容易在不同硬件和架构上运行。

ART完全改变了这种做法,在应用安装时就预编译字节码到机器语言,在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

Android开发——JVM、Dalvik以及ART的区别

Android内存优化:DVM和ART原理初探

上一篇下一篇

猜你喜欢

热点阅读