Запуск Android программ в Linux

Google дал для своего детища ChromeOS, который по сути своей linux, возможность запускать Android приложения. По иронии судьбы, Android — это то же linux с Java машиной ART в новых версиях и Dalvik в старых. Теперь в Linux мы мучаемся с запуском программ, написанных для несколько иной linux системы на кроссплатформенном языке Java. Технология называется App Runtime for Chrome или кратко ARC, которую разработали Кен Микстер (Ken Mixter) и Джош Вудвард (Josh Woodward).

Первые релизы ARC, которая ещё делает свои первые шаги, шли с ограничениями типа: работало некоторое количество приложений и только в ChromeOS. Разработчик НЕ из Google по имени Влад Филиппов ака vladikoff устранил ограничения и представил свою версию ARC под названием ARChon. Нам понадобится браузер Google Chrome старше 37 версии и всё что мы будем делать — это использовать API расширений Chrome. Гугловский ARC — это расширение. ARChon — расширение. Все программы android, что вы установите — это расширения.

Если вы будете использовать ARChon, то вы замените Google ARC, но не удалите его. Так что процедура безболезненная и не опасная.

Установка Архона.

Предполагаю, что с установкой Google Chrome вы уже справились. Осталось зайти на ARChon Custom Runtime Guide и скачать нужной архитектуры ARChon. Скачав архив, распакуйте его.

И тут остановитесь. Минутка истории! Начиная Chrome 35 для ОС MS Windows, Google решил запретить установку новых и работу прежде установленных расширений, размещённых НЕ в магазине Chrome WebStore. Потом был полный запрет сторонних расширений в мае 2014 года. Теперь чтобы установить стороннее расширение даже если вы ему доверяете, нужно провернуть несложный финт ушами.

Нам нужно в Терминале запустить Google Chrome вот так: google-chrome —enable-easy-off-store-extension-install

Теперь через Инструменты -> Расширения можно добавить скачанный и распакованный Архон. Поставьте галочку «Режим разработчика» и нажмите «Загрузить распакованное расширение». Укажите на распакованный каталог Архона, игнорируя предупреждения.

Установка Android программ в Linux без проблем.

Сообщество подготовило обширный список программ, с указанием статуса работоспособности и URL. Вам осталось посетить онлайн электронную таблицу Chrome APK Official Apps List. Я никогда не кидал свиней в птиц и решил, что самое время проверить возможность работы андроид программ в линуксе на примере именно этой игрушки Angry Birds. Скачал, распаковал, добавил как расширение и запустил.

Установка Android программ в Linux через /dev/ass.

Как быть если на руках есть только пакет с андроид программой в формате apk? Сначала проверьте в Chrome APK Official Apps List чтобы данная программа не была в красном цвете статуса Crash или Unusable. Я наивно полагал, что справлюсь с игрушкой Plants vs Zombies v1.2, но она обламала мне рога. И тут я вспомнил, что являюсь активным игроком в World of Tanks и есть программа-помощник World of Tanks Assistant. Скачать apk из Google Play мне помог сайт apk-dl.com, выдав прямую ссылку на требуемое.

Теперь нам нужен инструмент chromeos-apk, который позволяет конвертировать пакет apk в удобоваримое расширение:

  • Ставим Node Package Manager: sudo apt-get install npm
  • Качаем node.js. Чтобы не заморачиваться с исходниками и не компилировать какой-либо софт в Убунту с пакетным менеджментом, выбираю Linux Binaries (.tar.gz). Распаковываю архив и запоминаю путь к нему. Бинарник node оказался у меня в /home/vasilisc/temp/node/bin/
  • Обновляю до последней версии chromeos-apk sudo npm install -g chromeos-apk@latest
  • Перехожу в каталог с файлом ru.worldoftanks.mobile_1.8.2.apk и конвертирую, подсказывая где взять бинарник node:
    PATH=$PATH:/home/vasilisc/temp/node/bin chromeos-apk ru.worldoftanks.mobile_1.8.2.apk
    Должно быть выдано подобное:
    Directory » ru.worldoftanks.mobile.android » created. Copy that directory onto your Chromebook and use «Load unpacked extension» to load the application.
  • Установка WoT Assistant в виде расширения через Инструменты -> Расширения закончилось неудачей, как до этого и Plants vs Zombies. Дело в том, что нужно из файла ru.worldoftanks.mobile.android/manifest.json взять строку «name»: «ru.worldoftanks.mobile» и, превратив её в «message»: «ru.worldoftanks.mobile», добавить в файл ru.worldoftanks.mobile.android/_locales/en/messages.json в раздел extName
    «extName»: <
    «description»: «Extension name»,
    «message»: «ru.worldoftanks.mobile»
    >
    Теперь установка программы в виде расширения должна закончиться успешно. Это помогло WoT Assistant, но не помогло Plants vs Zombies, который установился, но продолжал крашиться.
  • Можете закрепить android программы в Unity Launcher, чтобы в дальнейшем быстро вызывать программу. Ведь никто визуально даже не догадается, как это запущено и как это работает. Главное работает!

Твики.

Программы в мире Android привыкли работать на мобильных устройства: смартфонах и планшетах. Окно программы вписывается в невидимое устройство и, если вам хочется сделать resize, чтобы было покрупнее, то это вполне можно сделать. В папке, которая содержит распакованный Archon есть 2 файла gen_main.min.js и gen_index.min.js
Найдите в них tablet: и подправьте под свои нужды.

Более действенно будет добавить «resize»: «scale» в раздел arc_metadata в файле manifest.json у самого приложения. После всех манипуляций не забудьте Перезагрузить (Ctrl+R) расширение.

Если у приложения нет своего значка, то на панели Unity Launcher будет дефолтный значок зелёного робота. Самый простой способ сменить значок — это любой понравившийся значок положить в распакованную папку приложения, затерев там icon.png. Остальное произойдёт без вас автоматически.

Вот в принципе и всё! Если вам чего-то не хватало из мира Android и вы страстно хотели это запустить в своей Linux системе, то теперь есть реальный шанс сделать это.

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

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

Сегодня мы поговорим о том, как можно запустить приложения Android на Linux, а именно в операционной системе Ubuntu 18.04. Оказывается, для этого есть несколько путей.

1. Установка эмулятора Anbox

Первый метод запуска приложения Android на Linux — это использование Anbox. Это эмулятор Android с открытым исходным кодом, который устанавливается несколькими командами и позволяет запускать Android-приложения на Ubuntu.

Для начала заходим в терминал и обновляем список пакетов следующей командой:

sudo apt-get update

После этого начинаем установку Anbox. Сначала подключаем репозиторий:


sudo add-apt-repository ppa:morphis/anbox-support

Когда система спросит — нажимаем Enter. Ещё раз выполняем обновление списка пакетов:

sudo apt update

После этого устанавливаем ядро Anbox


sudo apt install anbox-modules-dkms

После установки нужно один раз вручную запустить модули ядра. В будущем они будут стартовать сами.

Выполняем:
sudo modprobe ashmem_linux
sudo modprobe binder_linux

Устанавливаем Android Debug Bridge. Он нужен для корректной работы Android-приложений:

sudo apt install android-tools-adb android-tools-fastboot

Теперь устанавливаем, собственно, Anbox. Важно отметить, что пока это бета-версия, потому в ней возможны ошибки.

А установка производится в виде snap-, а не классических пакетов. Выполняем в терминале:
snap install —devmode —beta anbox

Маловероятно, но система может ругнуться «snap not found». Установите snap командой:

sudo apt install snapd

И попробуйте ещё раз. В процессе установки будет затребован пароль.

2. Использование эмулятора Anbox

После установки можно добавлять или удалять файлы с расширением APK. Это установочные пакеты программ на Android.

Для установки программы Android в Linux используем:

sudo adb install /the/location/of/file.apk

Для удаления, соответственно:

sudo adb uninstall /the/location/of/file.apk

Запускать Anbox можно как из списка программ, так и из терминала:

3. Установка эмулятора Genymotion

Второй эмулятор на сегодня весьма интересен. Начнём с того, что он — облачный. Во-вторых, он платный для коммерческого использования. Хотя в нашем случае хватит и бесплатной лицензии.

Наконец, Genymotion предлагает эмуляцию уже готовых моделей смартфонов и планшетов, что очень хорошо для разработчиков. Можно сразу протестировать программу в разных режимах.

Для начала идём на сайт Genymotion, регистрируемся там и получаем на почту сообщение с подтверждением о регистрации. В нём кликаем по ссылке, чтобы подтвердить адрес и активизировать учётку.

После тыкаем по красной кнопке Trial в верхнем правом углу.

Нас перебрасывает на новую страницу, откуда можно скачать необходимый файл. В нашем случае это файл с расширением bin. Запускаем закачку, а пока она идёт, установим VirtualBox (если вдруг он не установлен).

В терминале набираем:

sudo apt install virtualbox

Жмём Enter, вводим пароль, когда система попросит подтверждения, нажимаем y. По окончании установки набираем в терминале:

Эта команда выведет список директорий. Нам нужна Downloads или та, куда у вас по умолчанию скачиваются файлы. Вводим:

Жмём Enter, нас перебрасывает в папку. Снова вводим:

Это даёт нам список файлов в папке. Нас интересует genymotion-2.12.1-linux_x64.bin (в случае 32-разрядной системы genymotion-2.12.1-linux_x32.bin). Вводим:

sudo chmod +x genymotion-2.12.1-linux_x64.bin

Здесь можно ввести первые буквы имени файла и нажать Tab. Жмём Enter. Иначе это можно сделать, зайдя в папку Downloads, кликнуть правой кнопкой по файлу и дать ему права на выполнение.

После этого устанавливаем:

Нажимаем Enter, потом y, далее:


cd /opt/genymobile/genymotion ./genymotion

По нажатию Enter программа запускается. Теперь выбираем Sign in и авторизуемся с теми данными, с которыми мы регистрировались на сайте. Можно сразу выбрать Personal Use и авторизоваться уже там.

Принимаем условия EULA и — вуаля! У нас готовая к использованию система. Теперь вы знаете, как запустить Android приложение на Linux.

4. Запуск Android-приложений в Google Chrome Linux

В браузере для этого используется ряд расширений — chromeos-apk и ARChon. Сама же эмуляция функционирует, используя библиотеку Chrome App Runtime. Первоначально она появилась в Chrome OS, когда туда добавили поддержку Android. Для начала устанавливаем именно нестабильную версию Chrome (до релиза). В Терминале выполняем:

sudo nano /etc/apt/sources.list.d/google-chrome.list

Откроется окно Nano, туда вписываем следующее:

deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

Записываем изменения комбинацией Ctrl+O, выходим — Ctrl+X. Важно! При выходе без предварительной записи данные не сохраняются!

Далее в терминале вводим:

Эта команда скачает ключ для доступа к deb-пакету. Теперь вводим команду, которая ниже, это добавит ключ:

sudo apt-key add linux_signing_key.pub

Обновляем список пакетов:

sudo apt update

После этого устанавливаем уже нестабильную версию браузера:

sudo apt install google-chrome-unstable

Первый запуск браузера будет долгим, это нормально. Можно установить его по умолчанию, если хочется.

  • После запуска скачиваем и извлекаем из архива содержимое ARChon в любую директорию (можно даже по умолчанию);
  • Открываем Chrome и в настройках активируем Developer mode. Для этого идём в chrome://extensions/ или же открываем меню (которое с тремя точками);
  • Кликаем по Load unpacked extension и указываем распакованный ARChon. После этого расширение устанавливается.

Однако это ещё не всё. Теперь необходимо подготовить APK для установки (а вы думали, всё будет просто?). Сначала установим расширение chromeos-apk. Для этого инсталлируем библиотеку lib32stdc++6 командой в терминале:

sudo apt install lib32stdc++6

Сhromeos-apk устанавливаем, используя менеджер пакетов npm в том же терминале:

npm install chromeos-apk -g

Готово, теперь можно корректно распаковывать APK с помощью chromeos-apk и переводить его в расширение. В терминале вводим команду:

У нас получилось расширение для браузера Chrome. Открываем его в chrome://extensions/, после чего запускаем. Если вы всё сделали правильно, новенькая программа должна запуститься.

Важно, что в этом варианте будут работать далеко не все приложения. Ведь, по сути, это пока тестовая возможность, а не релиз. Скорее всего «не заведутся» игры, системные приложения и просто «тяжёлые» программы.

Выводы

В целом, есть ещё много способов запустить Android-программы в Ubuntu. Можно использовать эмулятор Shashlik или вообще поставить Android x86 в VirtualBox. Можно использовать QEMU и эмулировать даже железо (при условии, что у вас мощный ПК). В конце концов, если у вас куча свободного времени, можно даже поэкспериментировать со связкой Wine + какие-угодно-эмуляторы-под-другие-ОС. Правда, гарантий работы никто не даст ?.

Если же серьёзно, то решения под Ubuntu 18.04 для работы с Android-приложениями есть. Остаётся выбрать.

Как установить Android приложения в Ubuntu с помощью ARChon

Semen Lobachevskiy

Read more posts by this author.

Semen Lobachevskiy

Компания Google недавно опубликовала список Android приложений, доступных для Chrome OS. Это стало возможным благодаря новому расширению ‘Android Runtime’.

Также, не так давно один разработчик нашел способ, как запустить Android приложения на ПК в браузере Chrome.

Скрипт chromeos-apk Влада Филипова, вместе с расширением ARChon Android Runtime сделали возможным запуск Android приложений в браузере Chrome на Windows, Mac и Linux ПК.

Приложения работают не очень гладко через расширение. А уж о попытках запустить Dead Trigger 2 или какие-либо другие требовательные игры следует вовсе забыть.

Также, поскольку это неофициальный репак официального расширения и запускается он вне системы Chrome OS, системный функционал (например веб камера, динамики и т.д.) будет не доступен.

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

Как запустить Android приложения на Linux

Для того, чтобы вы смогли запустить Android приложения на Linux через Chrome, вам естественно понадобится сам браузер Chrome. Версия должна быть 37 или выше.

Уже установлена нужная версия Chrome? Тогда вы можете установить версию для разработчиков через командную строку:

sudo apt-get install google-chrome-unstable

Теперь вам необходимо установить пользовательское расширение — не имеющую официального статуса и непризнанную компанией Google или Chromium — Android Runtime, созданное Владом Филипповым. Оно сильно отличается от официальной версии, главным образом тем, что его можно устанавливать в версиях браузера для ПК.

Когда расширение скачается, вам нужно будет разархивировать содержимое в папку

Теперь устанавливаем ARChon. Откройте Google Chrome и зайдите в меню. Выберите раздел Инструменты > Расширения и, сверху, поставьте галочку ‘Включить режим разработчика’.

И в конце, нажмите кнопку ‘загрузить нераспакованное расширение’ и выберите папку, которую вы заранее поместили в директорию

Само расширение расширение само по себе не сможет сделать всю работу само, поэтому вам придется наладить совместимость Android приложения с расширением.

Существует несколько способов, как это можно сделать: вручную, на вашем ПК, или с помощью бесплатного Android приложения. Мы расскажем как сделать это вручную, но КСТАТИ! Существует также программа для ПК под названием ‘Twerk’, а также Archon Packager tool для мобильных устройств.

Способ «вручную» (Не рекомендуется)

Чтобы сконвертировать APK фаилы вручную — то что делать совсем не обязательно, если вы воспользуетесь одним из приложений, упомянутых выше — вам нужно будет установить ‘chromeos-apk’ через командую строку утилиты JavaScript. Все это можно сделать в менеджере Node Packaged Modules (npm).

sudo apt-get install npm nodejs nodejs-legacy

Пользуетесь Ubuntu 64 ? Тогда выполите еще и это:

sudo apt-get install lib32stdc++6

А теперь выполните команду, чтобы установить сам скрипт:

npm install -g chromeos-apk

Ну вот и все. Отправляйтесь на сайт Google и найдите APK приложения, которое хотите опробовать, но помните, что не все Android приложения запустятся, а те что запустятся могут быть багнутыми или лагать.

Поместите выбранный Android APK в

/Home, затем снова зайдите в Terminal, чтобы сконвертировать и заменить ваш APK и выбрать другое имя фаила:

chromeos-apk replaceme.apk —archon

Команда будет выполнена за считанные секунды.

Теперь у вас есть работающее расширение ARChon для Chrome и сконвертированный APK, который ждет своего часа в папке Home. Осталось лишь установить его и проверить, работает ли оно!

Возвращайтесь на страницу chrome://extensions, снова нажмите ‘загрузить нераспакованное расширение’, но теперь выберите созданный скриптом файл.

Приложение должно без проблем установиться, но запустится ли оно? Откройте страницу с приложениями Chrome и проверьте.

5 лучших эмуляторов Android для Linux

2 min

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

В конце концов, в то время как Windows и macOS имеют множество эмуляторов Android, которые пользователи могут попробовать, у Linux в основном их не хватает.

Тем не менее, есть некоторые эмуляторы Android, которые определенно стоит попробовать, будь то проверить новую игру, попробовать приложение или даже протестировать разрабатываемое приложение для Android. Вот 5 лучших эмуляторов Android, которые вы можете использовать в Linux.

1. Genymotion

Genymotion – это один из самых популярных эмуляторов Android, доступных в Linux (кстати, он также доступен в Windows и macOS), который вы можете попробовать, и на сегодняшний день он один из лучших. В отличие от большинства эмуляторов, Genymotion имеет красивый интерфейс.

Вы можете создать виртуальное устройство и просто подключиться к нему. По умолчанию виртуальные устройства в Genymotion поставляются с базовыми возможностями, но если вы хотите установить приложения из Play Store, Genymotion дает вам удобную кнопку для установки Open Gapps на ваше виртуальное устройство всего за пару кликов.

Это довольно круто, и после установки Gapps вы можете установить практически любое приложение, которое захотите попробовать. Genymotion идеально подходит не только для того, чтобы попробовать случайное приложение для Android, которое вы нашли, но и для тестирования приложения, которое вы разрабатываете самостоятельно.

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

Genymotion поставляется с эмуляторами под управлением Android версии 4.1, вплоть до Android 9.0 Pie и в различных форм-факторах от смартфонов до планшетов и даже пользовательских размеров экрана, которые могут пригодиться, если вы проверяете, как выглядит пользовательский интерфейс вашего приложения в различных форм-факторах.

Если вы ищете эмулятор для игр на Android, Genymotion, вероятно, не для вас. Я попытался установить PUBG Mobile и Free Fire на него, но он просто говорит, что устройство несовместимо. Я установил Pigeon Pop на него, и все прекрасно работает, но были видимые задержки ввода, которые неприемлемы, для комфортной игры.

Тем не менее, когда я пытался установить Genymotion на наш HP Envy с Ubuntu 18.04.1, у него были проблемы с Virtual Box, хотя Virtual Box был установлен правильно. Если вы сталкиваетесь с такими же проблемами, это может быть связано с тем, что в вашей системе включена безопасная загрузка UEFI.

Видимо, это вызывает проблемы с Virtual Box. Чтобы преодолеть это, вы можете использовать mokutil и отключить безопасную загрузку на своем ноутбуке, после чего Virtual Box должен нормально работать, и вы сможете легко запускать Genymotion. Вы можете посетить эту страницу Ubuntu Wiki для подробного руководства о том, как использовать mokutil для отключения безопасной загрузки.

2. Android-x86

Если Genymotion не подходит для ваших целей, и вы действительно хотите запустить Android как виртуальную машину в вашей Linux системе, Android-x86, вероятно, то, что вы ищете. Программное обеспечение фактически предназначено, как порт Android для систем на базе x86.

Это проект с открытым исходным кодом, это означает, что вы можете проверить код, если это вас интересует. Тем не менее, лучшая часть проекта Android-x86 заключается в том, что он обновляется довольно часто и в настоящее время имеет стабильный релиз который доступен, на базе Android Oreo.

Установить Android-x86 в вашей системе Linux довольно просто. Вам нужно загрузить ISO-файл Android-x86 в свою систему, создайть новую виртуальную машину в Virtual Box и установить ISO в качестве загрузочного устройства. Оттуда вы можете легко установить Android на свою виртуальную машину.

В целом, Android-x86 чувствует себя немного менее отзывчивым, чем Genymotion, но это не проблема, особенно если вы просто собираетесь использовать его для тестирования приложений. Если вам нужны игры, то Android-x86, вероятно, не тот эмулятор, который вам нужен.

3. Android SDK

Если вы разработчик и хотите использовать эмулятор, который официально поддерживается Google и позволяет создавать несколько виртуальных устройств, под управлением чего-либо от Android Lollipop до Android Pie, WearOS и даже Android TV тогда, вам нужен официальный менеджер Android Virtual Device (или AVD Manager), включенный в Android Studio.

Вам просто нужно установить Android Studio на вашей системе на базе Linux, и как только вы запустили программное обеспечение, вы можете просто перейти к “Tools -> AVD Manager“, чтобы создать свое первое виртуальное устройство в Android Studio.

Однако самая большая причина, по которой многие разработчики предпочитают использовать сторонний эмулятор вместо официального от Google, заключается в том, что он загружается довольно медленно. Конечно, со временем все улучшилось, но не настолько, чтобы обогнать по скорости Genymotion.

Однако для разработчиков это определенно самый гибкий вариант. В конце концов, он не только предлагает возможность создавать несколько виртуальных устройств под управлением чего-либо от Android 5 до Android 9 Pie, он также позволяет создавать виртуальные устройства Android TV и виртуальные устройства WearOS.

Так что вы можете протестировать свои приложения, во всех наиболее часто используемых операционных системах Google. Кроме того, эмулятор поставляется со всеми функциями, которые могут вам понадобиться для тестирования вашего приложения.

Вы можете повернуть эмулятор, изменить местоположение, батарею и условия сети, использовать камеру и многое другое с эмулятором Android Studio. Если вы разработчик, вам обязательно стоит попробовать его, прежде чем проверять другие эмуляторы.

4. Anbox

Anbox – один из самых уникальных эмуляторов Android в этом списке. Это не столько эмулятор, сколько своего рода Android Run Time (ART) в «песочнице», которая работает в системах GNU / Linux. Поставляется с версии Android 7.1 – что очень удобно для эмулятора.

Единственная причина, по которой Anbox так далеко в списке, заключается в том, что у него есть некоторые явные проблемы. Для начала, эмулятор не поставляется с установленным Google Apps на нем, что означает, что нет Play Store, нет Play Services и т. д. Итак, если вы планируете установить, скажем, PUBG Mobile, вы столкнетесь с множеством проблем.

Я попытался установить казуальную игру (Pigeon Pop), для которой требуется установить Play Games на устройство, которое Anbox не поддерживает. Так что да, есть проблемы.

Кроме того, если вы разработчик, который пытается протестировать собственное приложение на Anbox, вы не сможете просто перетащить, чтобы установить его. Вместо этого вам придется использовать ADB для установки APK на Anbox с помощью команды ‘adb install

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

К счастью, веб-сайт Anbox делает довольно солидную работу, объясняя, как можно сделать это. Имейте в виду, что если вы столкнетесь с проблемами при загрузке модулей ядра, вы можете столкнуться с той же проблемой, что я описал с Genymotion, поэтому попробуйте использовать то же решение.

5. ARChon

Если вы хотите запускать приложения Android в своей системе Linux без необходимости устанавливать для них отдельный эмулятор, ARChon может вас заинтересовать. ARChon в основном позволяет запускать приложения для Android в Chrome.

Таким образом, вы можете проверять приложения, не беспокоясь о загрузке эмуляторов, создании виртуального устройства или о проблеме с безопасной загрузкой UEFI, которая возникла в Genymotion.

Archon просто устанавливается как расширение Chrome в вашей системе (есть инструкции на веб-сайте) и оттуда вы можете использовать любой из различных инструментов, упомянутых на веб-сайте, для конвертации приложения для Android, в приложения, совместимые с ARChon, и просто запускать их прямо в Chrome.

Я опробовал на примере приложения 2048, которое предоставляет ARChon, и оно работает довольно хорошо, и я совершенно уверен, что большинство других простых приложений, таких как это, будут работать без проблем с использованием ARChon.

Запустите Android-приложения на Linux с помощью этих эмуляторов

Это были 5 лучших эмуляторов Android для Linux, которые, могут вам понравиться. Если вы хотите протестировать разрабатываемое приложение или просто опробовать новое приложение для Android на своем ПК с Linux, эти эмуляторы должны соответствовать вашим ожиданиям.

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

Настраиваем Anbox: как запускать приложения Android в Linux без эмулятора

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

  • Ставим
  • Ubuntu
  • Arch Linux
  • Пробуем
  • FAQ первопроходца
  • Как нажать кнопку «Назад» и мотать страницы?
  • Можно ли использовать Anbox для запуска проектов в Android Studio?
  • Можно ли получить доступ к файловой системе работающего Android из Linux?
  • Можно ли установить магазин приложений?
  • Как разобрать образ Android Anbox?
  • А можно ли использовать другой образ Android, например CyanogenMod?
  • Чем Anbox отличается от Shashlik
  • Как оно работает
  • Выводы

Начнем с того, что 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 #253. Сканеры уязвимостей

  • Содержание выпуска
  • Подписка на «Хакер»

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, гаджетов и древних видеоигр.

Adblock
detector