1. 程式人生 > >Android 虛擬機器相關概念

Android 虛擬機器相關概念

  1. 名詞解釋:

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 編譯打包流程。