Obsługa aplikacji na urządzeniach z ChromeOS

W Sklepie Google Play możesz instalować aplikacje na Androida na wielu Chromebookach Google. W tym dokumencie znajdziesz informacje o Chromebookach, Chromeboxach i Chromebase’ach, na których możesz zainstalować aplikacje na Androida.

Omówienie

Większość telefonów z Androidem ma chipsety ARM. Wiele urządzeń z ChromeOS korzysta jednak z procesorów x86. W przypadku podstawowych aplikacji napisanych w języku Kotlin lub Java różnica ta nie ma znaczenia. W przypadku aplikacji napisanych w kodzie C/C++, w tym tych utworzonych za pomocą silników do gier, ważnym czynnikiem może być chipset w urządzeniu.

Najlepiej, aby wszystkie aplikacje i gry z kodem C/C++ były dostarczane ze wszystkimi 4 głównymi interfejsami ABI (Application Binary Interfaces) na Androida: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) i x86_64. Zapewnia to najlepszą wydajność i najniższe zużycie baterii na każdym urządzeniu. Na przykład plik build.gradle oparty na CMake może zawierać:

Groovy

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

Kotlin

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

Rozmiar pakietu instalacyjnego Androida (APK)

Każdy interfejs ABI w monolitycznym pakiecie APK zwiększa jego rozmiar. Może to wpłynąć na wykorzystanie miejsca na dysku przez użytkowników, rozmiar pobierania aplikacji i to, czy aplikacja podlega limitom rozmiaru w Sklepie Play. Najlepszym sposobem na uniknięcie tego problemu jest używanie pakietów Android App Bundle.

Pakiety aplikacji umożliwiają spakowanie wszystkich 4 interfejsów ABI w Android Studio bez zwiększania rozmiaru pobierania dla użytkowników. Pomagają też korzystać z dynamicznego przesyłania, dzięki czemu użytkownicy mogą pobierać duże treści w grze tylko na żądanie. Jeśli nie możesz używać pakietów aplikacji, możesz skorzystać ze starszej metody wielu plików APK, która zapewnia podobne działanie.

wersje 32-bitowe i 64-bitowe,

Wszystkie aplikacje na Androida muszą mieć wersję 64-bitową. Wersja 32-bitowa jest opcjonalna zarówno w przypadku urządzeń z procesorami ARM, jak i x86. Więcej informacji znajdziesz w artykule Android 64-bit⁠.

Dostarczanie tylko kompilacji 64-bitowych zmniejsza liczbę wymaganych kompilacji i powierzchnię testową, ale ogranicza też rodzaje urządzeń, na których można uruchomić grę. Na przykład z powodu innych ograniczeń sprzętowych wiele starszych Chromebooków może uruchamiać tylko 32-bitowe aplikacje na Androida, mimo że mają 64-bitowe procesory. Aby mieć pewność, że aplikacja będzie działać na tych urządzeniach, dodaj obsługę zarówno 32-bitową, jak i 64-bitową.

Tłumaczenie ARM

Chromebooki z procesorem x86 próbują tłumaczyć kod ARM, ale tłumaczenie spowalnia działanie i zwiększa zużycie baterii. Aby zapewnić użytkownikom jak najlepsze wrażenia, udostępniaj wersje x86. Jeśli nie możesz tego zrobić, uwzględnij w kompilacjach interfejsy ABI arm32 i arm64, ponieważ niektóre Chromebooki x86 mogą nie tłumaczyć kodu arm64. Na przykład z powodu innych ograniczeń sprzętowych wiele starszych Chromebooków może uruchamiać tylko 32-bitowe aplikacje na Androida, mimo że mają 64-bitowe procesory. Aby aplikacja działała na tych urządzeniach, dodaj obsługę zarówno 32-bitową, jak i 64-bitową.

Chociaż tłumaczenie arm32 jest dostępne na wszystkich Chromebookach obsługujących Androida, nie wszystkie Chromebooki mogą tłumaczyć kod arm64. Oznacza to, że jeśli Twoja gra ma tylko docelowe kompilacje arm64, nie będzie dostępna na wielu urządzeniach z ChromeOS. Jeśli nie możesz wysłać plików binarnych x86, uwzględnij w kompilacjach interfejsy ABI arm32 i arm64.

Dostępne interfejsy ABI Obsługa ChromeOS
arm64 Niska
arm32 i arm64 OK (z tłumaczeniem)
arm32, arm64, x86_32 i x86_64 Najlepsze