Android приложения на ubuntu

Содержание статьи

Начнем с того, что Anbox — не эмулятор. Это система запуска полноценной среды Android прямо на текущем ядре Linux с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 3D-ускорения. Нечто вроде Wine, который запускает приложения Windows без необходимости запуска Windows в виртуальной машине, но без присущих Wine глюков и недоработок.

Два главных преимущества Anbox — скорость и бесшовная интеграция с десктопом. Приложения запускаются безо всяких прослоек и эмуляции. А самое главное — они работают быстро. Во второй части мы подробнее рассмотрим, как работает Anbox, а пока установим его и посмотрим, что это такое.

Ставим

В данный момент Anbox поддерживает исключительно процессоры архитектуры x86_64 и дистрибутивы Ubuntu 17.04, 16.10, 16.04, 14.04, а также Linux Mint, Neon и Elementary. Устанавливается либо с помощью самодостаточного пакета формата Snap, либо с помощью скрипта anbox-installer . Но так как оба варианта работают одинаково, а первый менее универсален, рассмотрим только второй.

Ubuntu

Первое, что необходимо сделать, — это загрузить сам скрипт и дать ему права на исполнение:

Далее запускаем скрипт:

Скрипт попросит написать в терминале I AGREE, после чего установит Anbox в систему и предложит перезагрузить машину. После перезагрузки в меню появится пункт Anbox.

Устанавливаем Anbox в Ubuntu

Xakep #246. Учиться, учиться, учиться!

Arch Linux

Anbox можно запустить не только в официально поддерживаемых дистрибутивах, но и в других линуксах, просто собрав его из исходников. Проще всего это сделать в Arch Linux, так как Anbox уже есть в AUR и весь процесс сборки можно автоматизировать.

Установим парочку необходимых для сборки пакетов:

А затем соберем Anbox из AUR. Лучше сделать это с помощью AUR-клиента, такого как pacaur или yaourt:

Далее загрузим необходимые модули ядра:

Запустим container manager:

Запустим session manager:

Готово. Можно кликать по иконке Anbox на рабочем столе или пойти путем джедая и запустить его прямо из терминала:

Пробуем

Сразу после запуска ты увидишь на экране простейший «менеджер приложений», написанный специально для Anbox. Приложений тут кот наплакал: стандартные галерея, календарь, настройки и прочее, а вот маркета нет. И поэтому первое, о чем ты спросишь: а как ставить софт, братан?

Менеджер приложений

И вот здесь начинается интересное. Разработчики Anbox не имеют права включать в поставку своего неэмулятора маркет и любой другой софт Google, в том числе сервисы Google, пока их «устройство» не пройдет сертификацию. Устройство пройти сертификацию не может — маркета не будет.

Но! В Anbox по умолчанию активирован режим отладки с помощью ADB (который в стандартном Android включается в настройках для разработчиков, куда еще надо добраться), поэтому установить приложение можно с его помощью. Установить сам ADB можно так:

А теперь самое интересное: тебе надо найти и скачать пакет APK нужного приложения. Для этого можно использовать сайт apkpure. Далее остается всего лишь выполнить такую команду (пример для FX File Explorer):

FX File Explorer

Готово! Ставь приложения, развлекайся, до встречи. Шучу, на самом деле есть множество подводных камней. Например, сразу после установки Anbox я решил протестировать, как в нем работает Opera Mini, тот самый браузер, который умеет быстро отображать странички, даже если интернет до тебя доходит с помощью голубиной почты. Ведь для десктопа его нет.

В результате на экране появилось вот что:

Объяснение этому простое: большая часть кода Opera Mini написана на C++, который скомпилирован в бинарник для платформы ARM. А так как в нашей машине процессор архитектуры x86_64 , Android заботливо прибил приложение еще на этапе установки, чтобы мы не мучились, силясь понять, почему оно не работает.

На самом деле в маркете полно подобных приложений, и с несовместимостями архитектуры ты будешь встречаться довольно-таки часто.

Настройки

Вторая интересная особенность запуска приложений в отдельных десктопных окнах: далеко не каждое приложение готово смириться с тем, что сейчас его личико будут жестко сжимать или растягивать. Большинство современных приложений в этом случае поведут себя корректно — Google позаботилась об этом, когда готовилась к реализации поддержки плавающих окон в Android 7.0. А вот со старым софтом могут возникнуть сложности, хотя обычно все заканчивается окном фиксированного размера.

Окна можно делать любых размеров и форм

Ну и третье. Anbox, выражаясь языком Шекспира, — это alpha software, то есть ребята нам как бы говорят: все будет плохо и нестабильно, а о таких вещах, как поддержка определения координат, камера и микрофон, ты можешь забыть. Более того, в некоторых случаях ты можешь забыть и об интернете, а session manager будет время от времени падать, и его придется перезапускать.

Зато! Anbox корректно определяет текущий уровень аккумулятора, размер оперативной памяти и даже жесткого диска (точнее, раздела /home ). Да и в целом работает быстро и не вызывает желания его снести. Количество пожираемой оперативки — всего 448 Мбайт при запущенном менеджере приложений.

Приложения видят весь диск

FAQ первопроходца

Как нажать кнопку «Назад» и мотать страницы?

Кнопка «Назад» эмулируется с помощью Esc. Клавиатуру также можно использовать для навигации по приложению (Tab и стрелки). Промотка либо колесиком, либо удержанием левой кнопки мыши и движением вниз-вверх.

Можно ли использовать Anbox для запуска проектов в Android Studio?

Да! Причем никаких дополнительных шагов для этого предпринимать не надо. Достаточно выбрать устройство с именем вида emulator-6663 при запуске проекта.

Можно ли получить доступ к файловой системе работающего Android из Linux?

Да, она находится в каталоге /var/lib/anbox/rootfs, но доступна только для чтения. Зато ты можешь просматривать содержимое приватных каталогов приложений (data/data).

Можно ли установить магазин приложений?

Теоретическая возможность установить Google Play Store существует. Для этого необходимо разобрать образ файловой системы Android и интегрировать в него GApps. Однако гораздо проще установить Yandex.Store или любой другой сторонний маркет. Плюс активировать установку из сторонних источников: Settings → Security → Unknown sources.

Как разобрать образ Android Anbox?

А можно ли использовать другой образ Android, например CyanogenMod?

Нет. Есть две причины, почему это сделать нельзя. Первая — это должна быть сборка Android для x86_64 . Вторая — эта сборка должна включать в себя специфические модификации Anbox.

Чем Anbox отличается от Shashlik

Shashlik запускает каждое приложение в эмуляторе. Другими словами, когда ты кликаешь по иконке приложения, запускается эмулятор, в нем — урезанная среда Android, а уже потом стартует приложение. Anbox гораздо более легковесный и производительный.

Как оно работает

В основе Anbox лежит очень простая идея: если Android — это виртуальная машина, работающая поверх ядра Linux, то почему бы не попробовать запустить приложения Android в окружении обычного дистрибутива Linux. Это очевидная идея, и она приходила в голову многим разработчикам с тех пор, как появился порт Android на x86. Некоторые программисты попытались реализовать ее через размещение окружения Android в chroot, но дальше полурабочих концептов дело не доходило (пример: ARC Welder).

У разработчиков Anbox ушло полтора года, чтобы довести проект до конца. Они смогли добиться интеграции приложений Android в десктоп Linux, обеспечить практически полную совместимость, а главное — сделать так, чтобы все это работало быстро, без сбоев и не требовало множества шагов для настройки.

Само окружение Android (на базе свежайшего Android 7.1.1, кстати) здесь замкнуто в песочницу, контролируемую с помощью технологии пространств имен (namespaces), той самой, что лежит в основе Docker. Пространства имен полностью отрезают окружение от среды дистрибутива Linux, а вся работа с оборудованием идет через демон anboxd. Для вывода картинки 3D-приложений используется специальный транслятор OpenGL ES → OpenGL, позаимствованный из официального эмулятора Android.

Ядро Linux также пришлось модифицировать, а точнее добавить в комплект Anbox модули с реализацией binder и ashmem, с помощью которых в Android взаимодействуют компоненты системы (IPC). Перед запуском Anbox загружает модули в ядро и добавляет правило udev для установки корректных прав доступа к устройствам /dev/binder и /dev/ashmem .

Каждое приложение в своем собственном окне Anbox размещает с помощью модифицированного композитного менеджера hwcomposer, который Android использует для наложения графических слоев. Hwcomposer запрашивает все слои каждого приложения и отдает их Anbox, который затем формирует индивидуальные окна для отдельно взятых приложений.

Все эти технические решения позволяют сделать Anbox действительно быстрым, удобным в использовании и эффективным в плане расходования ресурсов «эмулятором». В том числе в 3D-приложениях.

Anbox состоит из двух компонентов: container manager и session manager.

Container manager управляет песочницами с работающим внутри окружением Android. Его задача — корректно запустить систему Android, поддерживать ее работу и корректно завершить.

Session manager, в свою очередь, отвечает за коммуникацию Android внутри песочницы и с основной системой Linux. Его задача — отвечать на запросы запуска приложений и распределять их по разным окнам.

В целом запуск приложения Android с помощью Anbox выглядит так:

  1. В ядро загружаются модули binder и ashmem.
  2. Запускается container manager, который разворачивает песочницу с Android внутри.
  3. Запускается session manager, он запускает среду Android.
  4. Юзер отдает команду на запуск приложения, которую принимает и обрабатывает session manager.
  5. Session manager ожидает команды.

Шаги 1–3 подготавливают Anbox и запускаются один раз, обычно при загрузке системы.

Такая архитектура позволяет сделать запуск приложений практически моментальным за счет небольшого (порядка 400 Мбайт) оверхеда по памяти в режиме простоя.

Архитектура Anbox

Выводы

Вне всяких сомнений, Anbox заслуживает внимания. Да, у него есть проблемы с совместимостью, он не умеет работать с твоей камерой и микрофоном, он падает. Но это альфа-версия, и для альфы она работает прекрасно.

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Запуск Android приложений на Linux является очень простым. Хотите запускать приложения для Android в Linux? Как насчет игр на Android? Доступно несколько вариантов, но лучше всего работает Anbox, полезный инструмент, который запускает ваши любимые приложения для Android в Linux без эмуляции.

Запуск Android приложений на Linux

В этой статье, мы поговорим про запуск Android приложений на Linux. Итак давайте узнаем как можно запустить программы на своем ПК с Linux сегодня.

Встречайте Anbox, ваш «Android в коробке»

Доступ к предпочитаемым вами приложениям и играм для Android обеспечивает потрясающее новое измерение производительности вашего настольного компьютера или ноутбука Linux. Мобильные приложения по дизайну намного проще, чем в настольных операционных системах.

Это может быть именно то, что вы ищете для повышения производительности рабочего стола!

Тем временем мобильные игры становятся все более изощренными. Имеет смысл продолжать играть на другом устройстве, особенно учитывая ограниченное время автономной работы телефона или планшета. Конечно, вы можете подключить устройство, чтобы перезарядить, но возможность играть в игру на вашем компьютере может дать вам преимущество.

Для запуска приложений Android доступно несколько инструментов macOS и Windows. Наиболее распространенным инструментом для запуска Android на рабочем столе является Bluestacks, но он не доступен для Linux.

Вместо этого пользователям Linux следует попробовать Anbox, бесплатную альтернативу с открытым исходным кодом, основанную на последней версии Android Open Source Project (AOSP). Предлагая оконную среду Android с приложениями и играми, Anbox использует контейнеры для отделения Android от операционной системы хоста (то есть ОС на вашем компьютере).

Это не все; Помимо того, что Anbox является открытым исходным кодом, он не имеет ограничений, поэтому теоретически вы можете запускать любое приложение для Android в Linux. Аппаратная виртуализация также отсутствует, и Anbox может работать на ноутбуке или настольном компьютере так же, как на мобильном устройстве под управлением Linux.

Этот последний момент чрезвычайно важен, поскольку он может преодолеть проблемы взаимодействия с мобильными устройствами Linux. Запуск Android приложений на Linux таким способом является самым удобным.

Какие Linux дистрибутивы поддерживают Snap?

Anbox поставляется бесплатно, хотя и бесплатен. Это означает, что двоичные файлы и все зависимости включены в один пакет, что упрощает установку. К сожалению, это также может означать, что ваша ОС Linux не может использовать Anbox, если она не может распаковывать и устанавливать снимки.

Служба snapd требуется для установки моментальных снимков, и это совместимо с дистрибутивами Linux, такими как:

  1. Arch Linux
  2. Debian
  3. Ubuntu
  4. Fedora
  5. Gentoo
  6. Linux Mint
  7. Manjaro
  8. OpenSUSE
  9. Solus
  10. Lubuntu

В Ubuntu он предустановлен с 14.04. Вы найдете полную информацию о вашем дистрибутиве на сайте Snapcraft.

Чтобы установить snapd, используйте следующую команду терминала:

Дождитесь завершения установки, прежде чем продолжить.

Установка Anbox в Linux

С установленным на вашем ПК Linux сервисом snapd вы готовы установить Anbox. Это делается с помощью следующей команды, которая устанавливает все необходимое:

snap install —classic anbox-installer && anbox-installer

Вам будет предложено ввести пароль перед загрузкой пакета моментальных снимков.

Вскоре после этого вам будет представлен выбор:

  • Установить Anbox
  • Удалить Anbox

Если вам потребуется удалить программное обеспечение позднее, просто запустите указанную выше команду установщика и выберите вариант 2. Однако в случае установки Anbox вы можете перейти к варианту 1.

После этого вы увидите сводную информацию о том, что будет делать установка. Например, выделяются файлы, добавленные из PPA, а также информация о том, что среда выполнения anbox (библиотека программного обеспечения, позволяющая запускать другие программы и приложения) будет автоматически запускаться при входе в Linux.

Если вас все это устраивает, введите легенду «Я СОГЛАШАЮСЬ» и дождитесь установки Anbox. После этого следуйте инструкциям, чтобы перезагрузить систему, прежде чем продолжить.

Загрузка файлов APK на ваш компьютер с Linux

После перезагрузки компьютера Anbox будет доступен в меню рабочего стола. Нажмите на нее, чтобы запустить; Вы скоро увидите окно Anbox.

Если ничего не происходит или вы застряли на заставке с сообщением «Начало», отмените или подождите, пока это не закончится. Затем откройте новый терминал и введите

Затем снова щелкните значок в меню. Через несколько мгновений Anbox должен запуститься. Это известная ошибка в дистрибутивах на основе Ubuntu 16.04, которая не должна затрагивать более поздние дистрибутивы.

С запущенной Anbox вы увидите список основных приложений Android, которые вы можете запустить в Linux, таких как Календарь и Электронная почта. Просто щелкните левой кнопкой мыши по этим значкам, чтобы открыть их; они появятся в новых окнах, размер которых можно изменить по мере необходимости. Если вам нужен браузер, оболочка WebView включена.

Чтобы добавить свои собственные приложения и игры, все, что вам нужно сделать, это загрузить (или скопировать с другого устройства) соответствующие файлы APK. Это установочные файлы, такие как файлы DEB (или снимки) в Linux или файлы EXE в Windows. Как правило, они доступны через Google Play на Android … но это не относится к Anbox.

Установка приложений Android в Linux с помощью Anbox

Поскольку реализация Anbox для Android не зарегистрирована специальными сертификатами для поставщика, вы не сможете получить доступ к Google Play (или установить). Поэтому ответом является загрузка и загрузка APK.

Где вы найдете APK? Доступно несколько альтернатив Google Play, но если вы предпочитаете Play Store, у вас есть несколько способов извлечь APK из Google Play. Хотя Google ограничивает доступ к Play Store только зарегистрированным устройствам Android, в обход этого не идет пиратство. Если у вас есть APK-файлы или они доступны бесплатно, можно запускать их на незарегистрированных устройствах Android.

После того, как вы получите все APK-файлы, которые хотите установить, вам нужно разрешить установку из неизвестных источников. Для этого откройте меню «Настройки» на экране приложений и найдите «Безопасность». Здесь включите переключатель рядом с неизвестными источниками и нажмите кнопку ОК, чтобы принять.

После этого найдите файлы APK и дважды щелкните первый файл, который хотите установить. Через несколько мгновений приложение или игра должны быть готовы и будут запускаться в своем собственном окне в Linux. Установленные игры перечислены вместе со всеми другими приложениями.

Готово! Настройка проведена, запуск Android приложений на Linux возможен.

Если Вам интересны новости про Android, различные обзоры и советы по установке различных программ, мы рекомендуем ознакомиться с сайтом http://poandroidam.ru/.

Теперь вы можете запускать приложения для Android в Linux

Запуск Android приложений на Linux является очень простым. Но, поскольку Anbox находится, в данный момент на стадии альфа, могут быть некоторые проблемы со стабильностью. Тем не менее, обнадеживает знание того, насколько просто настроить, установить и запустить приложения Android в Linux с Anbox.

Для просмотра и запуска приложения, мы провели 7 шагов:

  1. Убедитесь, что ваш дистрибутив поддерживает мгновенные пакеты.
  2. Установите или обновите сервис snapd.
  3. Установите Anbox.
  4. Запустите Anbox с вашего рабочего стола Linux.
  5. Скачайте APK файлы и запустите их.
  6. Подождите, пока установится APK-файл.
  7. Нажмите, чтобы запустить приложения Android на рабочем столе Linux.

Выводы

Anbox — не единственный способ запуска приложений и игр для Android в Linux, но мы считаем, что он станет самым популярным через несколько лет. Если у Вас есть свои варианты того, как запустить Linux на вашем Android-устройстве, обязательно сообщите в комментариях сайта.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


[an error occurred while processing the directive]
Карта сайта