Представлен (https://mm.gravedo.de/blog/posts/2017-04-10-introducing-anbox/) новый проект Anbox (http://anbox.io/), в рамках которого развивается окружение, позволяющее запустить полноценную мобильную среду Android в обычном дистрибутиве Linux, тесно интегрированную с основным рабочим столом. Проект развивается уже полтора года и в настоящее время готов для предварительного тестирования. Официально пока поддерживается только Ubuntu Linux. Android-окружение построено на базе Android 7.1.1 из репозитория AOSP (https://source.android.com/) (Android Open Source Project). Наработки Anbox распространяются (https://github.com/anbox/anbox) под лицензией GPLv3.Anbox использует пространства имён ядра Linux (user, pid, uts, et, mount, ipc) для создания изолированного контейнера с компонентами Android. Android не имеет прямого доступа к оборудованию - всё взаимодействие с оборудованием производится только через специальную прослойку, которой управляет фоновый процесс anbox, запускаемый на стороне хоста. Прослойка использует те же методы работы с оборудованием и внешним миром, что и официальный эмулятор Android, основанный на QEMU (https://android.googlesource.com/platform/external/qemu/+/em...).
Поддержка отрисовки обеспечивается при помощи трансляции (https://android.googlesource.com/platform/external/qemu/+/em...) предоставляемого в Android API OpenGL ES в штатный API OpenGL основной системы. Благодаря использованию контейнеров без виртуализации и предоставляемого хост-системой OpenGL, удалось добиться достаточно высокой производительности Android-окружения, которая заметно выше, чем производительность конкурирующих проектов Shashlik (http://www.shashlik.io/) и Genimobile (https://www.genymobile.com/), использующих эмуляцию.
Для развёртывания окружения требуется загрузка дополнительных модулей ядра, обеспечивающих работу подсистем binder и ashmem, а также настройка udev и создание специального пользовательского сеанса. Для автоматизации настройки и установки подготовлен самодостаточный пакет в формате Snap, что позволяет свести установку к выполнению команды "snap install --classic anbox-installer". Для пользователей без Snap подготовлен установочный shell-скрипт (https://raw.githubusercontent.com/anbox/anbox-installer/mast...). При желании можно собрать (https://github.com/anbox/anbox/blob/master/docs/build-androi...) собственное Android-окружение на основе любой версии из AOSP.
Для запуска имеющихся Android-программ предложен специальный менеджер приложений. Непосредственно Android-приложения запускаются в отдельных окнах, сосуществующих с окнами обычных Linux-программ. Для установки дополнительных приложений пока поддерживается только adb ("adb install path/to/my-app.apk"), так как официальная поставка Google Play требует сертификации и подписания соглашения с Google.
URL: https://mm.gravedo.de/blog/posts/2017-04-10-introducing-anbox/
Новость: http://www.opennet.ru/opennews/art.shtml?num=46369