👉 歡迎加入T客邦telegram ( https://t.me/TechbangNEWS )
提供高效率x86執行環境
先前Google在釋出Android 11開發人員預覽版的時候,也一併提供了Android 11系統映像檔,同時也提高了Arm架構二進位執行檔的執行效率。
先前的系統映像檔採用完整Arm模擬功能(Full Arm Emulation),它會透過Arm函數庫執行App,因此不支援編譯x86架構衍生版本的App,這讓執行於x86架構電腦的模擬器,以及搭載x86處理器的行動裝置的App執行效率偏低。
而新的Android 11系統映像檔則一改這個問題,它能在不影響整體系統效能的前提下,將Arm架構指令轉換為86架構指令,能夠有效降低執行Arm架構二進位執行檔的效能虛耗。
提供原生執行環境
不同於使用Kotlin或Java語言編譯的程式會透過Android Runtime(ART)執行,如果程式使用C++語言的話,則會在編譯過程中依目標裝置的處理器架構,轉換為對應格式的機器指令(Machine Instruction),所以一般的App中的C++部分大多相容於Arm架構處理器,讓一些App中以C++編寫的部分功能(如QR Code掃瞄器)不相容於x86架構電腦,最終導致App無法正常執行。
在先前使用Android模擬器的情況下,如果要迴避這個問題,就需要使用完整的Android模擬功能,將整個系統的Arm指令轉換為x86指令,雖然可以達到相容的效果,但會消耗許多運算效能,而且不法使用硬體加速和處理器虛擬化技術,造成在x86電腦上執行Android模擬器效能不彰的問題。
新的Android 11 x86系統映像檔不但可以相容於原生x86環境,並可支援虛擬化技術,並可將Arm架構二進位執行檔轉換為x86架構格式,其中也包涵了libGLES、libvulkan等Android Runtime的重要函數庫,可以降低記憶體存取需求並提升整體效能。
目前這款新的映像檔已與Android 11 Developer Preview一併提供,使用者可以透過Android Studio中的SDK Manager或Android Virtual Device Manage下載。
模擬器開發團隊表示這項技術可以簡化Android App開發人員的測試工作流程,並計劃在未來將這項技術推廣至更多API等級(API Level),以確保能更接近真實Android裝置的行為模式。