隨著 Android 11 開發者預覽版的發布 ,我們同時也推出了 Android 11 系統映像。新的系統映像在執行 ARM 二進制文件方面取得了顯著的性能提升。此前,依賴 ARM 庫且無法構建 x86 版本應用的開發者只能使用完整的 ARM 模擬系統映像 (其速度遠低于在 x86 設備上運行 x86 系統映像) 或者實體機。Android 11 系統映像能夠在不影響整個系統的前提下,直接將 ARM 指令轉換成 x86 指令。開發者無需搭建高負載的 ARM 環境即可執行 ARM 二進制文件并進行測試。
全新的 Android 11 (Google API) x86 系統映像支持 ARM 應用二進制接口 (ABI),較舊版本的 Android Oreo 系統映像并不提供該支持
Android 11 系統映像 https://developer.android.google.cn/studio/releases/emulator#support_for_arm_binaries_on_android_9_and_11_system_images
技術細節
我們可能需要結合具體情景來說明這項新技術的重要性,尤其是如果您只使用 Kotlin 或 Java 編程語言來構建應用的話。Kotlin 和 Java 編程語言均在 ART (Android 運行時) 上執行,但 C++ 則與它們不同,Android 應用中的所有 C++ 指令會直接編譯為機器指令,也就是說,目標設備的平臺架構決定著 C++ 的編譯方法。移動手機一般搭載 ARM 處理器,因此,您為應用添加的許多 C++ 依賴項 (例如攝像頭條形碼掃描庫) 僅與 ARM 處理器兼容。在這種情形下,如果您使用基于 x86 處理器的設備進行開發工作,便會遇到應用無法運行的問題。
過去,開發者需要通過模擬器鏡系統映像搭建一個完整的 ARM 環境,才能繞過這個限制并在 x86 機器上執行 ARM 應用。但是,把整個系統的 ARM 指令都轉換成 x86 指令會造成過高的性能負荷,因此與基于 x86 的系統映像相比,完整的 ARM 系統映像在 x86 宿主機上的運行速度會慢很多,而且它還無法使用 x86 處理器提供的硬件加速和 CPU 虛擬化技術。
全新的Android 11 系統映像與 ARM 兼容,它不僅允許整個系統在本機運行 x86 指令,而且還可以照常使用虛擬化技術。當應用的某個進程需要使用 ARM 二進制代碼時,代碼僅會在該進程內被轉換成 x86 指令,其余進程將繼續在 x86 環境內執行,包括 Android 運行時 (ART) 以及其它性能關鍵庫,例如 libGLES和 libvulkan。除此以外,指令轉換器也不會執行低層的硬件特定庫,從而避免高成本的內存訪問檢測和相應的性能影響。在 ARM 公司的協作下,新的模擬器系統映像在本地和持續集成框架內均可運行。
Android 11 系統映像https://developer.android.google.cn/studio/releases/emulator#support_for_arm_binaries_on_android_9_and_11_system_images
libGLEShttps://developer.android.google.cn/ndk/guides/stable_apis#graphics
libvulkanhttps://developer.android.google.cn/ndk/guides/graphics/design-notes
下一步
如果您之前由于缺乏高性能的 ARM 支持,去選擇了實體機而非模擬器,不妨嘗試一下 Android 11 系統映像。此映像文件目前已隨 Android 11 開發者預覽版一同開放下載。您可通過 SDK Manager 或者 Android Virtual Device Manager將最新版本的系統映像下載至 Android Studio。
使用 Android Virtual Device Manager 創建一個運行 Android 11 的 AVD
Android 11 系統映像https://developer.android.google.cn/studio/releases/emulator#support_for_arm_binaries_on_android_9_and_11_system_images
Android Virtual Device Managerhttps://developer.android.google.cn/studio/run/managing-avds#createavd
一旦應用在模擬器中成功運行后,請考慮適配 Chrome OS。Chrome OS 同樣也支持在 x86 筆記本上執行 ARM 版本的 Android 應用。通過構建適用于 Chrome OS 的應用,您可以挖掘大屏幕設備生態圈所蘊含的海量機遇,讓全球更多的用戶認識您的應用。
-
ARM
+關注
關注
134文章
9349瀏覽量
377393 -
Android
+關注
關注
12文章
3973瀏覽量
130217
發布評論請先 登錄
DevEcoStudio 中使用模擬器時如何過濾日志
電網模擬器工作原理淺析
光伏組件模擬器9大參數概述

CAN總線模擬器的使用指南 CAN總線網絡的安全性分析
android手機上emulate應用程序的方法
電動汽車交流接口模擬器相關介紹

鴻蒙Flutter實戰:12-使用模擬器開發調試
如何使用光伏模擬器

可回饋式電網模擬器的使用方法有哪些?
負載模擬器是干什么的,負載模擬器需要接電源嗎
電池模擬器的原理和運用介紹


評論