Obrazy systemu Android 11 x86 dla emulatora Androida obsługują interfejsy ARM ABI

Obrazy systemu Android 11 dla sprzętu x86 obsługują teraz emulację ARM na emulatorze Androida w Android Studio dla komputerów x86.

Google udostępniło Wersja deweloperska Androida 11 2 wcześniej w tym miesiącu. W tej wersji firma Google wprowadziła kluczową zmianę, aby umożliwić bardziej wydajne debugowanie aplikacji w emulatorze Androida Studio Androida. Obrazy systemu Android 11 dla procesorów x86 umożliwiają teraz większe działanie aplikacji z zależnościami C lub C++ płynnie bez pełnej emulacji ARM i wykorzystując akcelerację sprzętową i wirtualizację procesora x86 sprzęt komputerowy.

Aplikacje na Androida napisane w kodzie natywnym (tj. C lub C++) muszą być kompilowane z uwzględnieniem różnych architektur procesorów. Muszą istnieć różne wersje aplikacji przeznaczone dla różnych architektur procesorów, takich jak ARM, ARM64, x86 lub x86-64. Dzieje się tak, ponieważ kod natywny jest bezpośrednio wkompilowany w instrukcje maszynowe dla określonej architektury, w przeciwieństwie do aplikacji Kotlin lub Java, które działają w środowisku wykonawczym Androida (ART).

Aby przetestować aplikację za pomocą emulatora Androida działającego na komputerze z procesorem x86, potrzebujesz innej wersji dla procesora x86. Wersja aplikacji x86 nie będzie działać na smartfonach, ponieważ są one zazwyczaj oparte na procesorach ARM lub ARM64. Do tej pory jedyny rozwiązaniem tego problemu było użycie fizycznego urządzenia z Androidem lub zainstalowanie obrazów emulatorów z pełną emulacją ARM dla procesorów x86. Ta ostatnia opcja wymaga dużej wydajności i nie pozwala w pełni wykorzystać akceleracji sprzętowej i wirtualizacji procesora, jakie oferuje x86 Oferta procesorów.

Aby rozwiązać ten problem, Google udostępniło teraz nowe obrazy systemu Android 11 x86 ze zgodnością z ARM. Te obrazy systemów wykorzystują ABI (interfejsy binarne aplikacji), które pośredniczą między aplikacjami napisanymi w różnych językach lub między aplikacjami a systemem operacyjnym. Instrukcje ARM w pliku binarnym ARM są tłumaczone wyłącznie na x86, podczas gdy pozostała część kodu jest nadal wykonywana w x86. Ze względu na izolację plików binarnych ARM proces jest mniej wymagający pod względem wydajności i działa nawet na sprzęcie niskiego poziomu.

Oprócz umożliwienia łatwiejszego debugowania aplikacji na Androida przy użyciu zależności C++, umożliwi to także programistom po prostu opublikuj wersję ARM swoich aplikacji wraz z ABI zamiast wersji x86 dla Chromebooków w przyszły. Zwiększy to obsługę większej liczby aplikacji przeznaczonych dla systemu Android 11 na różnych Chromebookach.

Nowe obrazy systemu Android 11 zgodne z architekturą x86 można pobrać w ramach Studio Androida używając Menedżer urządzeń wirtualnych Androida lub Menedżer SDK.