Android 11 x86 systembilder for Android Emulator støtter ARM ABI

Android 11-systembilder for x86-maskinvare støtter nå ARM-emulering på Android Emulator i Android Studio for x86-PCer.

Google ga ut Android 11 Developer Preview 2 tidligere denne måneden. Med denne utgivelsen gjorde Google en viktig endring for å muliggjøre mer effektiv app-feilsøking på Android Emulator innenfor Android Studio. Android 11-systembildene for x86-prosessorer lar nå programmer med C- eller C++-avhengigheter kjøre mer problemfritt uten full ARM-emulering og ved bruk av maskinvareakselerasjon og CPU-virtualisering av x86 maskinvare.

Android-apper skrevet i opprinnelig kode (dvs. C eller C++) må kompileres med tanke på forskjellige CPU-arkitekturer. Det må være forskjellige versjoner av appen som målretter mot forskjellige CPU-arkitekturer som ARM, ARM64, x86 eller x86-64. Dette er fordi innfødt kode er direkte kompilert inn i maskininstruksjonene for den spesifikke arkitekturen i motsetning til Kotlin eller Java-apper som kjøres på Android Runtime (ART).

For å teste appen din via Android Emulator som kjører på en x86-basert datamaskin, trenger du en annen versjon for x86 CPU. x86-versjonen av appen vil ikke fungere på smarttelefoner siden de vanligvis er basert på ARM- eller ARM64-prosessorer. Inntil nå, den eneste løsningen på dette problemet var å enten bruke en fysisk Android-enhet eller installere emulatorbilder med full ARM-emulering for x86 CPUer. Det siste alternativet er ytelsesintensivt og kan ikke dra full nytte av maskinvareakselerasjonen og CPU-virtualiseringen som x86 CPUer tilbyr.

For å løse dette har Google nå gitt ut de nye Android 11 x86-systembildene med ARM-kompatibilitet. Disse systembildene bruker ABI-er (binære applikasjonsgrensesnitt) som går mellom apper skrevet på forskjellige språk eller mellom apper og operativsystemet. ARM-instruksjonene i ARM-binæren blir utelukkende oversatt til x86 mens resten av koden fortsetter å bli utført i x86. På grunn av denne isolasjonen av ARM-binærfiler, er prosessen mindre ytelsesintensiv og kjører selv på lavt nivå maskinvare.

I tillegg til å muliggjøre enklere feilsøking av Android-apper ved å bruke C++-avhengigheter, vil det også tillate utviklere å bare publiser ARM-versjonen av appene deres sammen med ABI-er i stedet for en x86-versjon for Chromebooks i framtid. Dette vil stimulere til støtte for flere Android 11-målrettede apper på en rekke Chromebooks.

De nye x86-kompatible Android 11-systembildene kan lastes ned innenfor Android Studio bruker Android Virtual Device Manager eller SDK Manager.