Android 11 x86-systeemimages voor de Android-emulator ondersteunen ARM ABI's

Android 11-systeemimages voor x86-hardware ondersteunen nu ARM-emulatie op Android Emulator in Android Studio voor x86-pc's.

Google heeft de Android 11 ontwikkelaarsvoorbeeld 2 eerder deze maand. Met deze release heeft Google een belangrijke wijziging aangebracht om efficiënter app-foutopsporing op Android Emulator mogelijk te maken Android-studio. Dankzij de Android 11-systeemimages voor x86-CPU's kunnen applicaties met C- of C++-afhankelijkheden nu meer draaien soepel zonder volledige ARM-emulatie en met behulp van hardwareversnelling en CPU-virtualisatie van x86 hardware.

Android-apps die in native code zijn geschreven (d.w.z. C of C++) moeten worden gecompileerd met verschillende CPU-architecturen in gedachten. Er moeten verschillende versies van de app zijn die zich richten op verschillende CPU-architecturen, zoals ARM, ARM64, x86 of x86-64. Dit komt omdat native code rechtstreeks wordt gecompileerd in de machine-instructies voor de specifieke architectuur, in tegenstelling tot Kotlin- of Java-apps die worden uitgevoerd op Android Runtime (ART).

Om uw app te testen via Android Emulator op een x86-computer, heeft u een andere versie voor x86 CPU nodig. De x86-versie van de app werkt niet op smartphones, omdat deze doorgaans gebaseerd zijn op ARM- of ARM64-CPU's. Tot nu toe de enige De oplossing voor dit probleem was het gebruik van een fysiek Android-apparaat of het installeren van emulator-images met volledige ARM-emulatie voor x86 CPU's. De laatste optie is prestatie-intensief en kan niet volledig profiteren van de hardwareversnelling en CPU-virtualisatie die x86 biedt CPU's bieden.

Om dit op te lossen heeft Google nu de nieuwe Android 11 x86 systeemimages met ARM-compatibiliteit uitgebracht. Deze systeemimages maken gebruik van ABI's (binaire applicatie-interfaces) die bemiddelen tussen apps die in verschillende talen zijn geschreven of tussen apps en het besturingssysteem. De ARM-instructies binnen het ARM-binaire bestand worden uitsluitend vertaald naar x86, terwijl de rest van de code wordt uitgevoerd in x86. Door deze isolatie van binaire ARM-bestanden is het proces minder prestatie-intensief en draait het zelfs op hardware van laag niveau.

Naast het eenvoudiger debuggen van Android-apps met behulp van C++-afhankelijkheden, zullen ontwikkelaars dit ook mogelijk maken publiceer gewoon de ARM-versie van hun apps samen met ABI's in plaats van een x86-versie voor Chromebooks in de toekomst. Dit zal de ondersteuning stimuleren voor meer op Android 11 gerichte apps op verschillende Chromebooks.

De nieuwe x86-compatibele Android 11-systeemimages kunnen worden gedownload Android-studio de... gebruiken Beheer van virtuele Android-apparaten of de SDK-manager.