Компания Collabora представила окружение для запуска Android-приложений в Linux

Компания Collabora развивает открытый проект SPURV, позволяющий сформировать изолированное окружение для запуска Android-приложений, обеспечивающего интеграцию интерфейса данных приложений с графическими оболочками на базе Wayland. При помощи SPURV пользоваель может запускать Android-приложения в Linux бок о бок с обычными графическими приложениями, поставляемыми в дистрибутивах Linux.

Android-окружение запускается в изолированном контейнере. В окружении устанавливаются штатные компоненты платформы Android, поставляемые в репозиториях AOSP (Android Open Source Project). Для запуска контейнера используется systemd-nspawn. Для Android-приложений предоставляется поддержка полноценного 3D-ускорения.

Для взаимодействия Android в контейнере с внешними миром подготовлено несколько компонентов:

  • SPURV Audio для организации вывода звука через звуковой стек Linux. Компонент реализован в виде прослойки, пробрасывающей обращения к Android Audio HAL (Hardware Abtraction Layer) в подсистему ALSA;
  • SPURV HWComposer для интеграции окон Android в окружение на базе Wayland. Компонент транслирует запросы к API HWC (Hardware Composer) в обращения к Wayland. HWC предоставляет средства для вывода данных на экран, обработки экранных буферов и объединения экранных буферов разных приложений в единый рабочий стол. Применяемый в HWC протокол концептуально напоминает протокол Wayland, поэтому трансляция не вызывает проблем. Кроме трансляции API HWC в Wayland компонент SPURV HWComposer также выполняет задачу обработки ввода, перехватывая на стороне Wayland связанные с Android-приложениями события ввода, например, информацию о касании к сенсорному экрану, и подставляя их в Android.
  • SPURV DHCP с простой реализацией протокола DHCP, позволяющей наладить сетевое взаимодействие между основной системой и окружением с Android.

0_1554193119.jpg

©  OpenNet