爲什麼應用在Android5.0系統以上運行的更快

權限管理不同

隨着Android系統版本的升級,google對開發者的權限申請越來越嚴格,而且後臺進程管控越來越嚴格。

例如:前幾年過年有很多開發者會讓應用在設備上一直存活不退出(傳說的“保活”)

底層機制不同

這是最重要的區別

5.0之前底層使用Dalvik虛擬機;
5.0之後底層使用Android Runtime;

Dalvik

Dalvik是一個處理器虛擬機。
用Java寫的Android程序,首先被編譯成Java虛擬機的字節碼,然後再轉換爲Dalvik的字節碼。Java虛擬機的字節碼存放在.class文件中,Dalvik字節碼存放在.dex(Dalvik EXecutable)和.odex(Optimized Dalvik EXecutable)文件中. Dalvik的可執行文件,是專爲對內存和處理器有限制的系統設計的。

  • 運行原理
    其中的即使編譯器(trace-based just-in-time (JIT) compilation),在應用每次啓動時,持續性的分析和動態的將頻繁執行的簡短字節碼片段翻譯爲本地機器碼。剩餘的字節碼,則由Dalvik解釋執行。

Android Runtime

Android Runtime (ART) 是Android操作系統使用的應用運行環境。 是Android 上的應用和部分系統服務使用的託管式運行時。

  • 運行原理
    程序安裝時,使用提前編譯器(ahead-of-time(AOT) compilation)直接把dex字節碼文件轉爲本地機器碼,運行時不用再轉換。

  • 通過移除Dalvik解釋器和trace-based JIT編譯器,ART大大提高了應用的執行效率和減少了電量的消耗。同時,還提高了內存分配和垃圾回收機制,增加了新的應用調試功能和對應用更精準的高層分析。 (如果提高內存分配和垃圾回收機制, 請讀者自行參考Android官網文檔)

  • 缺點: 增加了應用的安裝時間和佔用手機上更多的flash空間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章