Android虚拟机-Dalvik VM架构
Dalvik, VM會監視所有的程序APK,并且創建依賴關系熟,為每個程序優化代碼并存儲在Dalvik緩存中。Dalvik VM第一次加載后會生成Cache文件,加速加載,Dalvik Vm的第一次加載很慢。
? ?dx是一套工具,可以將Java的.class文件轉換成.dex格式,一個dex文檔通常會有多個.class文件。由于dex有時必須進行優化,會是文件大小正價1-4倍,并以ODEX結尾。
? ?1.虛擬機很小,使用空間也小
? ?2.Dalvik VM沒有JIT編譯器
? ?3.常量池已被修改為只使用32位的索引,簡化解釋器
? ? 4.它使用自己字節碼,而非java字節碼
? ?Android的應用程序主要是用戶界面的,通常以Java程序編寫,包含各種資源文件。
? Dalvik VM和Java虛擬機的差異如下:
? ?1.Dalvik VM早期沒有使用JIT(just-in-time)技術,從Android2.2開始,Dalvik VM也支持JIT
? ?2.Dalvik VM有自己的bytecode,并非使用Java bytecode
? ? 3.Dalvik Vm基于暫存器(register),而JVM基于棧(stack)
? ?4.Dalvik Vm通過Zygote進行Class Preloading,Zygote會完成虛擬機的初始化,也與Java虛擬機的不同之處。
總結
以上是生活随笔為你收集整理的Android虚拟机-Dalvik VM架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java虚拟机的生命周期
- 下一篇: Dalvik VM的主要特征