Android 11 x86 süsteemipildid Androidi emulaatori jaoks toetavad ARM ABI-sid

Android 11 süsteemipildid x86 riistvara jaoks toetavad nüüd ARM-emulatsiooni Android Studios x86-arvutite jaoks mõeldud Androidi emulaatoris.

Google andis välja Android 11 arendaja eelvaade 2 selle kuu alguses. Selle väljalaskega tegi Google olulise muudatuse, et võimaldada Androidi emulaatoris tõhusam rakenduste silumine Android Studio. Android 11 süsteemipildid x86 protsessoritele võimaldavad nüüd C- või C++-sõltuvusega rakendustel rohkem töötada sujuvalt ilma täieliku ARM-emulatsioonita ja kasutades riistvarakiirendust ja x86 protsessori virtualiseerimist riistvara.

Omakoodis (st C või C++) kirjutatud Androidi rakendused tuleb kompileerida CPU erinevat arhitektuuri silmas pidades. Peavad olema erinevad rakenduse versioonid, mis sihivad erinevaid protsessori arhitektuure (nt ARM, ARM64, x86 või x86-64). Selle põhjuseks on asjaolu, et algkood kompileeritakse otse konkreetse arhitektuuri masinajuhistesse, erinevalt Kotlini või Java rakendustest, mis käitatakse Android Runtime'is (ART).

Rakenduse testimiseks Android-emulaatori kaudu, mis töötab x86-põhises arvutis, vajate x86-põhise protsessori jaoks teist versiooni. Rakenduse x86 versioon ei tööta nutitelefonides, kuna need põhinevad tavaliselt ARM- või ARM64-protsessoritel. Seni ainus Selle probleemi lahendus oli kas kasutada füüsilist Android-seadet või installida emulaatorpildid koos täieliku ARM-emulatsiooniga x86-protsessorite jaoks. Viimane võimalus on jõudlusmahukas ega saa täielikult ära kasutada riistvarakiirendust ja protsessori virtualiseerimist, mida x86 Protsessorid pakuvad.

Selle lahendamiseks on Google nüüd välja andnud uued ARM-i ühilduvusega Android 11 x86 süsteemipildid. Need süsteemipildid kasutavad ABI-sid (rakenduse binaarliideseid), mis vahendavad erinevates keeltes kirjutatud rakendusi või rakenduste ja operatsioonisüsteemi vahel. ARM-i binaaris olevad ARM-käsud tõlgitakse ainult x86-le, ülejäänud koodi täitmine jätkub aga x86-vormingus. Tänu sellisele ARM-i kahendfailide eraldamisele on protsess vähem jõudlusmahukas ja töötab isegi madala tasemega riistvaras.

Lisaks Androidi rakenduste lihtsamale silumisele C++ sõltuvuste abil võimaldab see arendajatel lihtsalt avaldage oma rakenduste ARM-versioon koos ABI-dega Chromebookide x86-versiooni asemel tulevik. See ergutab mitmesugustes Chromebookides rohkemate Android 11-le suunatud rakenduste tuge.

Uusi x86-ga ühilduvaid Android 11 süsteemipilte saab alla laadida Android Studio kasutades Androidi virtuaalse seadmehaldur või SDK haldur.