google為了解決與oracle之間關(guān)于java相關(guān)專利和授權(quán)的糾紛,開發(fā)了DVM。
jvm與dvm之間的區(qū)別:
? ? dvm執(zhí)行的是.dex格式文件,jvm執(zhí)行的是.class文件,android程序編譯完之后生產(chǎn).class文件,然后,dex工具會把.class文件處理成.dex文件,然后把資源文件和.dex文件等打包成.apk文件,apk就是android package的意思,jvm執(zhí)行的是.class文件。
? ? dvm是基于寄存器的虛擬機,而jvm是基于虛擬棧的虛擬機。寄存器存取速度比??斓枚?,dvm可以根據(jù)硬件實現(xiàn)最大的優(yōu)化,比較適合移動設(shè)備。
? ? class文件存在很多的冗余信息,dex工具會去除冗余信息,并把所有的.class文件整合到.dex文件中,減少了I/O操作,提高了類的查找速度。