Obsługa aplikacji na urządzeniach z ChromeOS

Za pomocą Sklepu Google Play możesz instalować aplikacje na Androida na kilku Chromebookach Google. W tym dokumencie opisujemy Chromebooki, Chromeboksy i komputery Chromebase, na których można instalować aplikacje na Androida.

Przegląd

Większość telefonów z Androidem ma chipsety ARM. Jednak wiele urządzeń z ChromeOS używa układów x86. W przypadku podstawowych aplikacji napisanych w języku Kotlin lub w Javie różnica nie ma znaczenia. Jednak w przypadku aplikacji napisanych w języku natywnym, w tym aplikacji utworzonych przy użyciu silników gier, chipset w urządzeniu może stanowić poważny problem.

Najlepiej, aby wszystkie aplikacje i gry z kodem natywnym były dostarczane ze wszystkimi 4 głównymi interfejsami binarnymi Androida interfejsami binarnymi aplikacji: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) i x86_6. Zapewnia to najlepszą wydajność i najniższe zużycie baterii dla każdego urządzenia. Na przykład plik build.gradle oparty na cmake może zawierać:

Odlotowy

externalNativeBuild {
    cmake {
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }
}

Kotlin

externalNativeBuild {
    cmake {
        abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
    }
}

Rozmiar pakietu Android Package Kit (APK)

Każdy interfejs ABI w monolitycznym pliku APK zwiększa swój rozmiar. Może to mieć wpływ na wykorzystanie dysku użytkowników, rozmiar pobieranej aplikacji oraz to, czy limity rozmiaru aplikacji Sklep Play nie wpływają na aplikację. Najlepszym sposobem, aby tego uniknąć, jest korzystanie z pakietów Android App Bundle.

Pakiety aplikacji umożliwiają łatwe łączenie wszystkich 4 interfejsów ABI z poziomu Android Studio bez zwiększania rozmiaru pobierania przez użytkowników. Ułatwiają też korzystanie z dynamicznego przesyłania, które pozwala użytkownikom pobierać duże treści z gier tylko na żądanie. Jeśli nie możesz skorzystać z pakietów aplikacji, możesz użyć starszego wielokrotnego pliku APK, aby uzyskać podobne działanie.

Kompilacje 32- i 64-bitowe

Wszystkie aplikacje na Androida muszą mieć 64-bitową wersję kompilacji. 32-bitowa kompilacja jest opcjonalna dla urządzeń z architekturą ARM i x86. Więcej informacji znajdziesz w dokumentacji 64-bitowej wersji Androida.

Udostępnianie samych 64-bitowych kompilacji zmniejsza liczbę wymaganych celów kompilacji i platformę testową, ale ogranicza też rodzaje urządzeń, na których można uruchomić grę. Na przykład ze względu na inne ograniczenia sprzętowe na wielu starszych Chromebookach można uruchamiać tylko 32-bitowe aplikacje na Androida, mimo że są to 64-bitowe procesory. Aby mieć pewność, że Twoja aplikacja będzie działać na tych urządzeniach, zapewnij obsługę wersji 32- i 64-bitowej.

Tłumaczenie ARM

Chromebooki x86 starają się tłumaczyć kod ARM, gdy jest to możliwe, ale tłumaczenie spowalnia działanie i zwiększa zużycie baterii. Aby zadbać o wygodę użytkowników, udostępniaj kompilacje x86. Jeśli to niemożliwe, uwzględnij w kompilacjach zarówno interfejsy ABI Arm32, jak i ABI, ponieważ niektóre Chromebooki x86 mogą nie tłumaczyć kodu Arm64.

Tłumaczenie z użyciem Arm32 jest dostępne na wszystkich Chromebookach obsługujących Androida, ale nie na wszystkich Chromebookach można tłumaczyć kod Arm64. Oznacza to, że jeśli Twoja gra ma cele kompilacji typu Arm64, nie jest ona dostępna dla wielu urządzeń z ChromeOS. Jeśli nie możesz wysłać plików binarnych x86, uwzględnij w kompilacjach zarówno interfejsy ABI Arm32, jak i Arm64.

Uwzględnione interfejsy ABI Pomoc dotycząca ChromeOS
Arm64 Złe
arm32 i arm64 OK (z tłumaczeniem)
arm32, arm64, x86_32 i x86_64 Pozdrawiam,