Проект Anbox развивает окружение для запуска Android-приложений в дистрибутивах Linux
Представлен новый проект Anbox, в рамках которого развивается окружение, позволяющее запустить полноценную мобильную среду Android в обычном дистрибутиве Linux, тесно интегрированную с основным рабочим столом. Проект развивается уже полтора года и в настоящее время готов для предварительного тестирования. Официально пока поддерживается только Ubuntu Linux. Android-окружение построено на базе Android 7.1.1 из репозитория AOSP (Android Open Source Project). Наработки Anbox распространяются под лицензией GPLv3.
Anbox использует пространства имен ядра Linux (user, pid, uts, et, mount, ipc) для создания изолированного контейнера с компонентами Android. Android не имеет прямого доступа к оборудованию - все взаимодействие с оборудованием производится только через специальную прослойку, которой управляет фоновый процесс anbox, запускаемый на стороне хоста. Прослойка использует те же методы работы с оборудованием и внешним миром, что и официальный эмулятор Android, основанный на QEMU.
Поддержка отрисовки обеспечивается при помощи трансляции предоставляемого в Android API OpenGL ES в штатный API OpenGL основной системы. Благодаря использованию контейнеров без виртуализации и предоставляемого хост-системой OpenGL, удалось добиться достаточно высокой производительности Android-окружения, которая заметно выше, чем производительность конкурирующих проектов Shashlik и Genimobile, использующих эмуляцию.
Для развертывания окружения требуется загрузка дополнительных модулей ядра, обеспечивающих работу подсистем binder и ashmem, а также настройка udev и создание специального пользовательского сеанса. Для автоматизации настройки и установки подготовлен самодостаточный пакет в формате Snap, что позволяет свести установку к выполнению команды "snap install --classic anbox-installer". Для пользователей без Snap подготовлен установочный shell-скрипт. При желании можно собрать собственное Android-окружение на основе любой версии из AOSP. Для установки приложений пока поддерживается только adb ("adb install path/to/my-app.apk"), так как официальная поставка Google Play требует сертификации и подписания соглашения с Google.