- 名詞解釋:
JVM:Java Virtual Machine, java 程序運行的虛擬機。
JIT:just In Time Compiler。
-------
ART:Anroid RunTime。
AOT:Ahead Of Time。
Dalvik:Android 中使用的java 虛擬機。
DVM: Dalvik Virtual Machine: 每個android 進程對應一個 DVM。
------
2, JVM 與 DVM 的區別
JVM 運行java程序, 加載的事java 字節碼。 DVM 運行android 程序。運行的是Dalvik字節碼
, 均由Java字節碼
轉換而來。
3, DVM和ART(Android Runtime)虛擬機的區別與聯繫
DVM 執行的事 dalvik 字節碼,而ART VM 執行的是本地機器碼。
DVM原理:依靠JIT編譯器去解釋執行,運行時動態地將執行頻率很高的dex字節碼翻譯成本地機器碼然後在執行,但是將dex字節碼翻譯成本地機器碼是發生在應用程序的運行過程中,並且應用程序每一次重新運行的時候,都要重新做這個翻譯工作.
ART原理:應用程序仍然是一個包含dex字節碼的apk文件。在安裝應用的時候,dex中的字節碼將被編譯成本地機器碼,之後每次打開應用,執行的都是本地機器碼。移除了運行時的解釋執行,效率更高,啓動更快。(安卓在4.4中發佈了ART運行時)
4, Android 虛擬機發展歷程:
< 4.4 DVM
< 5.0 DVM (ART)
< 7.0 ART
now ART :(AOT + JIT) 混合編譯,大大提升了初次安裝執行速度。
5,Android 編譯打包流程。