1,每个java程序都运行在Dalvik虚拟机之上,每个安桌程序都有自己的进程,Dalvik虚拟机只执行.dex的可执行文件。当java程序通过编译后,最后还需要通过SDK中的DX工具转化成.dex格式才能正常在虚拟机上执行。
为什么要转化格式?
.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
大多数虚拟机包括JVM都是一种堆栈机器,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更长。
来源维基百科。为什么安桌启动会很慢?
当Android启动时,Dalvik VM 监视所有的程序(APK),并且创建依存关系树,为每个程序优化代码并存储在Dalvik缓存中。Dalvik第一次加载后会生成Cache文件,以提供下次快速加载,所以第一次会很慢。