Вы можете использовать магазин Google Play для установки приложений Android на несколько моделей Google Chromebook. В этом документе описаны Chromebook, Chromebox и Chromebase, на которые можно устанавливать приложения Android.
Обзор
Большинство телефонов Android оснащены чипсетами ARM. Однако многие устройства ChromeOS используют чипы x86. Разница не важна для простых приложений, написанных на Kotlin или Java. Однако для приложений, написанных на C/C++, в том числе созданных с использованием игровых движков, тип чипсета устройства может иметь важное значение.
В идеале все приложения и игры с кодом на C/C++ должны поставляться со всеми четырьмя основными ABI (интерфейсами двоичных приложений) Android: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) и x86_64. Это обеспечивает наилучшую производительность и минимальное потребление заряда батареи для каждого устройства. Например, файл build.gradle созданный с помощью cmake, может содержать:
Классный
externalNativeBuild { cmake { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }
Котлин
externalNativeBuild { cmake { abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64") } }
Размер комплекта пакетов Android (APK)
Каждый ABI в монолитном APK-файле увеличивает его размер. Это может повлиять на использование дискового пространства пользователями, размер загружаемого приложения и на то, будет ли приложение соответствовать ограничениям по размеру, установленным Play Store. Лучший способ избежать этого — использовать пакеты приложений Android (Android App Bundles ).
App Bundles позволяют объединять все четыре ABI из Android Studio без увеличения размера загружаемого контента для пользователей. Они также помогают использовать преимущества динамической доставки , позволяя пользователям загружать большой игровой контент только по запросу. Если App Bundles вам недоступны, вы можете использовать более старый способ с поддержкой multi-APK для аналогичного результата.
32-битные и 64-битные сборки
Все приложения для Android должны иметь 64-битную версию сборки. 32-битная сборка является необязательной как для устройств ARM, так и для x86. Дополнительную информацию см. в разделе «Android 64-bit» .
Хотя предоставление только 64-битных сборок уменьшает количество необходимых целевых платформ сборки и расширяет возможности тестирования, это также ограничивает типы устройств, на которых может запускаться ваша игра. Например, из-за других аппаратных ограничений многие старые Chromebook могут запускать только 32-битные приложения Android, несмотря на наличие 64-битных процессоров. Чтобы гарантировать работу вашего приложения на таких устройствах, включите поддержку как 32-битных, так и 64-битных версий.
ARM-перевод
Chromebook на базе x86 пытаются транслировать код ARM, когда это возможно, но трансляция замедляет работу и увеличивает расход заряда батареи. Для наилучшего пользовательского опыта предоставляйте сборки для x86. Если это невозможно, включите в свои сборки ABI как для arm32, так и для arm64, поскольку некоторые Chromebook на базе x86 могут не транслировать код arm64. Например, из-за других аппаратных ограничений многие старые Chromebook могут запускать только 32-битные приложения Android, несмотря на наличие 64-битных процессоров. Чтобы ваше приложение работало на таких устройствах, включите поддержку как 32-битных, так и 64-битных приложений.
Хотя трансляция кода arm32 доступна на всех Chromebook, поддерживающих Android, не все Chromebook могут транслировать код arm64. Это означает, что если ваша игра предназначена только для сборки на arm64, она не будет доступна для большого количества устройств ChromeOS. Если вы не можете поставлять бинарные файлы для x86, включите в свои сборки ABI как для arm32, так и для arm64.
| Включенные АДГ | Поддержка ChromeOS |
|---|---|
| arm64 | Бедный |
| arm32 и arm64 | ОК (с переводом) |
| arm32, arm64, x86_32 и x86_64 | Лучший |