日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Dalvik與ART的架構差異,你學會了嗎?

來源: 責編: 時間:2024-01-26 09:02:07 201觀看
導讀DalvikDalvik是Google公司自己設計用于Android平臺的Java虛擬機。它是Android移動設備平臺的核心組成部分之一,可以支持已轉換為.dex(即Dalvik Executable)格式的Java應用程序的運行。.dex格式是專為Dalvik設計的一種壓

Dalvik

Dalvik是Google公司自己設計用于Android平臺的Java虛擬機。它是Android移動設備平臺的核心組成部分之一,可以支持已轉換為.dex(即Dalvik Executable)格式的Java應用程序的運行。.dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。Dalvik經過優化,允許在有限的內存中同時運行多個虛擬機的實例,并且每一個Dalvik應用作為一個獨立的Linux進程執行。獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉。此外,Dalvik虛擬機基于寄存器,與標準Java虛擬機(JVM)基于棧的架構存在顯著差異。lNR28資訊網——每日最新資訊28at.com

  • 原理:一個應用首先經過DX工具將class文件轉換成Dalvik虛擬機可以執行的dex文件,然后由類加載器加載原生類和 Java類。Dalvik虛擬機負責解釋器根據指令集對Dalvik字節碼進行釋dex文件為機器碼。
  • JIT編譯器:Dalvik負責將dex翻譯為機器碼交由系統調用,有一個缺陷,每次執行代碼,都需要Dalvik將操作碼代碼翻譯為機器對應的微處理器指令,然后交給底層系統處理,運行效率很低。JIT編譯器,當App運行時,每當遇到一個新類,JIT編譯器就會對這個類進行即時編譯,經過編譯后的代碼,會被優化成相當精簡的原生型指令碼(即native code),這樣在下次執行到相同邏輯的時候,速度就會更快。
  • Dalvik的啟動流程:Dalvik進程管理是依賴于linux的進程體系結構的,如要為應用程序創建一個進程,它會使用linux的fork機制來復制一個進程。

ART

ART(Android Runtime)是Android平臺上的一個運行時環境,用于執行Android應用程序。它是Android操作系統的重要組成部分,為應用程序提供了執行環境。lNR28資訊網——每日最新資訊28at.com

ART是在Android 5.0(API級別21)中引入的,旨在改進應用程序的執行性能和兼容性。在ART出現之前,Android使用的是Dalvik虛擬機作為其運行時環境。與Dalvik相比,ART在運行應用程序時進行了更多的優化和編譯,從而提高了應用程序的執行效率和穩定性。lNR28資訊網——每日最新資訊28at.com

當應用程序在Android設備上安裝時,ART會將其轉換為已優化的機器代碼,這有助于提高應用程序的運行速度。此外,ART還支持即時編譯(JIT),這意味著它在運行時將字節碼轉換為機器代碼,進一步提高了應用程序的執行效率。lNR28資訊網——每日最新資訊28at.com

  • 原理:JIT是運行時編譯,這樣可以對執行次數頻繁的dex代碼進行編譯和優化,減少以后使用時的翻譯時間, 但將dex翻譯為本地機器碼也要占用時間。ART的策略與Dalvik不同,在ART環境中,應用在第一次安裝的時候,字節碼就會預先編譯成機器碼,使其成為真正的本地應用。之后打開App的時候,不需要額外的翻譯工作,直接使用本地機器碼運行,因此運行速度提高。
  • AOT:AOT是靜態編譯,應用在安裝的時候會啟動dex2oat過程把dex預編譯成ELF文件,每次運行程序的時候不用重新編譯。

使用ART的好處:lNR28資訊網——每日最新資訊28at.com

  1. 提高應用程序的執行速度:由于ART采用了更高效的編譯方式,應用程序的運行速度得到了顯著提升。
  2. 更好的兼容性:ART對應用程序的代碼進行了更全面的優化,減少了因代碼問題導致的崩潰或錯誤。
  3. 更少的內存占用:ART的優化編譯方式使得應用程序占用的內存更少,從而提高了設備的整體性能。
  4. 更好的安全性:ART對應用程序代碼進行了更嚴格的檢查和驗證,增強了應用程序的安全性。

區別

ART和Dalvik在執行方式、編譯優化和性能方面存在顯著差異。ART通過預編譯和全面優化提供了更高的執行效率和穩定性,而Dalvik則更注重在有限內存中的并發執行能力。隨著Android版本的演進,ART逐漸成為默認的運行時環境,以提供更好的應用程序性能和用戶體驗。lNR28資訊網——每日最新資訊28at.com

Dalvik使用JIT,ART結合了兩者的優勢,使用AOT+JIT(Android7.0之后混合使用,Android5.0-Android7.0之前使用AOT)DVM時為32位CPU設計的,而 ART支持64位并兼容32位CPU,這也是DVM被淘汰的主要原因之一。ART對垃圾回收機制進行了改進,比如更頻繁地執行并行垃圾收集,將GC暫停由2次減少為1次等。lNR28資訊網——每日最新資訊28at.com

總結一下,它們之間存在一些關鍵的區別,主要表現在執行方式、編譯優化和性能等方面。lNR28資訊網——每日最新資訊28at.com

  1. 執行方式:Dalvik是依賴于即時編譯(JIT)的,它在運行應用程序時將字節碼轉換為本地機器碼。這意味著應用程序的代碼在每次運行時都需要被解釋和編譯,這可能會導致一定的性能開銷。相比之下,ART采用預編譯(AOT)方式,在應用程序安裝時將其編譯成本地機器碼,從而減少了運行時的編譯開銷,提高了執行效率。
  2. 編譯優化:Dalvik主要關注在有限的內存中同時運行多個虛擬機的實例,而ART則更注重應用程序的執行效率和穩定性。ART在編譯過程中會對應用程序代碼進行更全面的優化,包括空間優化和時間優化,以實現更快的執行速度和更少的內存占用。
  3. 性能:由于ART采用了預編譯和更全面的優化方式,它在執行應用程序時通常表現出更高的性能。與Dalvik相比,ART可以實現更快的啟動速度、更流暢的用戶體驗和更低的功耗。此外,ART還支持更多的語言和框架,使得開發人員能夠更加靈活地創建應用程序。


lNR28資訊網——每日最新資訊28at.com


lNR28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-68324-0.htmlDalvik與ART的架構差異,你學會了嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 基于Redisson的RAtomicLong實現全局唯一工單號生成器

下一篇: 接口響應以XML數據格式輸出,這些方法你都知道嗎?

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 广水市| 澜沧| 涪陵区| 鹤山市| 连江县| 长岛县| 凤山县| 睢宁县| 成安县| 获嘉县| 台州市| 田阳县| 福海县| 曲阳县| 庆阳市| 万荣县| 全南县| 桂阳县| 施秉县| 大方县| 竹北市| 彭阳县| 邮箱| 阿拉尔市| 旬邑县| 自贡市| 綦江县| 洱源县| 汕头市| 哈巴河县| 庆安县| 盖州市| 呼图壁县| 高陵县| 绍兴市| 德令哈市| 田林县| 拉萨市| 定州市| 买车| 诸城市|