Поддержка приложений на устройствах ChromeOS

Вы можете использовать Google Play Store для установки приложений Android на несколько Google Chromebook. В этом документе описаны Chromebook, Chromebox и Chromebase, на которые можно устанавливать приложения Android.

Обзор

Большинство телефонов Android оснащены чипсетами ARM. Однако многие устройства ChromeOS используют чипы x86. Разница не существенна для базовых приложений, написанных на Kotlin или Java. Однако для приложений, написанных на собственном коде, в том числе созданных с использованием игровых движков, важную проблему может представлять набор микросхем устройства.

В идеале все приложения и игры с собственным кодом поставляются со всеми четырьмя основными 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 Package Kit (APK)

Каждый ABI в монолитном APK увеличивает свой размер. Это может повлиять на использование диска вашими пользователями, размер загрузки приложения и на то, влияют ли на приложение ограничения размера Play Store. Лучший способ избежать этого — использовать пакеты приложений Android .

Пакеты приложений позволяют легко объединить все четыре ABI из Android Studio, не увеличивая размер загрузки для ваших пользователей. Они также позволяют легко воспользоваться преимуществами динамической доставки , позволяя пользователям загружать большой игровой контент только по запросу. Если пакеты приложений для вас невозможны, вы можете использовать более старый мульти-APK для аналогичного поведения.

32-битные и 64-битные сборки

Все приложения Android должны иметь 64-битную версию сборки. 32-битная сборка необязательна как для устройств ARM, так и для x86. Дополнительную информацию см. в документации по 64-разрядной версии Android⁠ .

Хотя предоставление только 64-битных сборок сокращает количество необходимых целей сборки и площади для тестирования, это также ограничивает типы устройств, на которых может запускаться ваша игра. Например, из-за других аппаратных ограничений многие старые Chromebook могут запускать только 32-битные приложения Android, несмотря на 64-битные процессоры. Чтобы ваше приложение могло работать на этих устройствах, включите поддержку как 32-, так и 64-разрядных версий.

ARM-перевод

Chromebook x86 пытается транслировать код ARM, когда это возможно, но трансляция снижает производительность и увеличивает расход заряда батареи. Для лучшего взаимодействия с пользователем предоставьте сборки x86. Если вы не можете, включите в свои сборки ABI Arm32 и Arm64, поскольку некоторые Chromebook x86 могут не транслировать код Arm64.

Хотя перевод Arm32 доступен на всех Chromebook с поддержкой Android, не все Chromebook могут переводить код Arm64. Это означает, что если в вашей игре есть только цели сборки Arm64, она недоступна для большого количества устройств ChromeOS. Если вы не можете поставлять двоичные файлы x86, включите в свои сборки ABI для Arm32 и Arm64.

Включенные ABI Поддержка ChromeOS
рука64 Бедный
рука32 и рука64 ОК (с переводом)
рука32, рука64, x86_32 и x86_64 Лучший