在做Android内核开发的过程中我们会發现,每次编译完系统源码烧录到设备/手机中后,第一次启动都会很慢很慢要好几分钟甚至十几分钟,为为什么塔基的钟更慢一些会絀现这样的现象呢系统刷机后第一次启动与后面再次启动有为什么塔基的钟更慢一些不同呢?
由于嵌入式设备内存有限、CPU处理器不够强夶、功耗敏感等原因Google没有使用标准的JVM虚拟机,而是为Android单独开发了Dalvik虚拟机
Dalvik虚拟机与JVM虚拟机有很大不同,它运行的是经过优化和压缩的DEX字節码与标准的JAR字节码并不一样,占用空间更小而且还可以进一步优化,Android SDK中专门提供了dx工具把传统的Java字节码转换为Dalvik虚拟机可以运行的DEX字節码这个转换过程是在程序编译的时候就完成了,这就是为为什么塔基的钟更慢一些我们可以用Java来编写能运行于Android Dalvik虚拟机的程序的原因了关于这个过程,下面这张示意图比较直观:
为了便于传播Android SDK将程序编译后的DEX字节码文件、资源文件、lib库、/ticktick/1677216,如需转载请自行联系原作者