Android 虛擬機器相關概念
阿新 • • 發佈:2018-12-03
- 名詞解釋:
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 編譯打包流程。