как на линуксе запустить андроид приложение
Установка и запуск Android-приложений на Linux
Как известно, многие Android-приложения можно нативно запускать на Chrome OS благодаря библиотеке Chrome App Runtime.
С помощью расширений chromeos-apk и ARChon запуск Android APK стал возможен и на других ОС.
Устанавливаем ARChon Runtime
1) Скачиваем и распаковываем ARChon в произвольную дирректорию;
2) Открываем Chrome и включаем Developer mode в chrome://extensions/;
3) Кликаем «Load unpacked extension» и устанавливаем распакованный ARChon.
Далее необходимо подготовить архив APK для установки.
Устанавливаем chromeos-apk
1) Для Ubuntu прежде всего нужно установить библиотеку lib32stdc++6:
2) chromeos-apk можно установить с помощью менеджера пакетов npm (поставляется вместе с node.js).
3) Сейчас можно установить непосредственно chromeos-apk:
Теперь все готово к распаковке APK.
Подготавливаем APK с помощью chromeos-apk
1) Для распаковки APK-архива выполняем:
2) Теперь у нас есть Chrome-APK расширение, и все что нужно — загрузить (chrome://extensions/) и запустить его.
UPD: полезные ссылки от sequence
ARChon Packager: создает архивы для archon из установленных в телефоне приложений.
twerk: расширение хром, сильно облегчает конвертацию apk.
Запуск Android приложений на Linux
Сегодня мы поговорим о том, как можно запустить приложения Android на Linux, а именно в операционной системе Ubuntu 18.04. Оказывается, для этого есть несколько путей.
Запуск Android-приложений в ОС Linux
1. Установка эмулятора Anbox
Первый метод запуска приложения Android на Linux — это использование Anbox. Это эмулятор Android с открытым исходным кодом, который устанавливается несколькими командами и позволяет запускать Android-приложения на Ubuntu.
Для начала заходим в терминал и обновляем список пакетов следующей командой:
sudo apt-get update
После этого начинаем установку Anbox. Сначала подключаем репозиторий:
sudo add-apt-repository ppa:morphis/anbox-support
Когда система спросит — нажимаем Enter. Ещё раз выполняем обновление списка пакетов:
После этого устанавливаем ядро 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 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, далее:
По нажатию 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
Далее в терминале вводим:
Эта команда скачает ключ для доступа к deb-пакету. Теперь вводим команду, которая ниже, это добавит ключ:
sudo apt-key add linux_signing_key.pub
Обновляем список пакетов:
После этого устанавливаем уже нестабильную версию браузера:
sudo apt install google-chrome-unstable
Первый запуск браузера будет долгим, это нормально. Можно установить его по умолчанию, если хочется.
Однако это ещё не всё. Теперь необходимо подготовить APK для установки (а вы думали, всё будет просто?). Сначала установим расширение chromeos-apk. Для этого инсталлируем библиотеку lib32stdc++6 командой в терминале:
sudo apt install lib32stdc++6
Сhromeos-apk устанавливаем, используя менеджер пакетов npm в том же терминале:
Готово, теперь можно корректно распаковывать APK с помощью chromeos-apk и переводить его в расширение. В терминале вводим команду:
У нас получилось расширение для браузера Chrome. Открываем его в chrome://extensions/, после чего запускаем. Если вы всё сделали правильно, новенькая программа должна запуститься.
Важно, что в этом варианте будут работать далеко не все приложения. Ведь, по сути, это пока тестовая возможность, а не релиз. Скорее всего «не заведутся» игры, системные приложения и просто «тяжёлые» программы.
Выводы
В целом, есть ещё много способов запустить Android-программы в Ubuntu. Можно использовать эмулятор Shashlik или вообще поставить Android x86 в VirtualBox. Можно использовать QEMU и эмулировать даже железо (при условии, что у вас мощный ПК). В конце концов, если у вас куча свободного времени, можно даже поэкспериментировать со связкой Wine + какие-угодно-эмуляторы-под-другие-ОС. Правда, гарантий работы никто не даст 😊.
Если же серьёзно, то решения под Ubuntu 18.04 для работы с Android-приложениями есть. Остаётся выбрать.
Оцените статью:
Об авторе
33 комментария
Это точно.
Для винды есть нормальные эмуляторы, для линукса нет.
Ни один из описываемых способов нормально не работает.
Genymotion платный, и работает намного хуже чем бесплатный BlueStacks (который только под виндовс).
Genymotion платен только для коммерческого использования. Пользуюсь им несколько лет и, на мой взгляд, он даже лучше, чем родной эмулятор, входящий в состав идешки Android Studio.
А Вы не устаете при каждой установке программ?
Genymotion бесплатный. Регишься и всё. Никто никаких денег с меня не просил.
Познавательная статья, кому-то может быть и пригодится. Android, хоть и основан на Ubuntu, достаточно «грязная» среда и ставить её приложение на относительно чистый Linux я бы не решился)
С чего вы взяли, что ведро основано на Ubuntu?!
Наверное связь построил :
Если Андроид построен на основе «Линукс», а Убунту это «Линукс», то Андроид=Убунту =))))))))))))
Прикол в том что то что ты перечислил: Debian, mint и убунту одно и тоже считай.
P.S. ОС Linux Mint 19, Virtualbox v 5.2.10 Ubuntu r121806 Windows 7 на этой же виртуалке запускается нормально.
Обсуждает Миша Рыцаревъ: и а наоборот- а вот чтобы в какие смартфоны убунту можно было бы установить? (А то под этот «Андроид» жуть как много всякого малварьного срача- а под убунту-то его нет (нет его и под «яблокофоны». Но зато в них других недостатков хватает)).
И где можно купить смартфон (и планшет) с убунтой? (И бывают ли и такие андроидные модели, куда можно было бы поставить и две ОС? (Т.е. убунту рядом с «Андроидом»)).
И а помимо этого- а какое ПО есть и под линукс для и диагностики и ремонта и бэкапа и перепрошивок смартфонов? (И вот существует много таких проблем в ОС, которые можно легко устранять и без перепрошивки, если знать, как. Однако в большинстве сервисцентров даже и по пустякам такие гаджеты предпочитают просто тупо заново перепрошить и все (и берут за это хорошие деньги. Хотя там весь труд- это всего лишь несколько раз нужные кнопки нажать и все. А денег берут за это столько, сколько многим их клиентам на работе целый день не легким трудом пахать надо. Где тогда в сети есть инструкции, как все, что себе нужно делать со своим гаджетом самостоятельно? (И а под линукс все ли ПО-инструменты есть, какое для этого надо? (У меня вот был случай- подхватил я в сети какую-то малварь, которую антивирус проглядел. Потом антивирус ее все же удалил. Однако удалил так, что много багов в прошивке потом появилось. В сети я нашел, что такое вполне бывает (в других ОС тоже бывает). Однако там же я нашел и описание, как это там выправить, изменив руками всего лишь несколько строк в одном системном файле и все. Но там было написано лишь о том, а как это из под винды делать. Искать описания таких способов и из под линукса было некогда (и это надо и знать, как искать)- отдал я тогда свой гаджет своему знакомому ремонтнику и он заново его перепрошил (хорошо, у меня знакомые такие есть- денег нет- помогли и так. Но в любом случае- а какое ПО-инструмент для «гаджетофонов» и под линуксом есть? (А инструкции, как не имея опыта сделать что-либо в их «мозгах» и самостоятельно?))))
Существует ли такое ПО для обслуживания смартфонов, которое есть только под винду? (Не исключаю, что это еще и от модели (и от производителя) «гаджетофона» может зависеть). А в таких случаях будет ли такое ПО нормально работать из под «Wine»? (Ну или если и винду и какое надо ПО в виртуалке запустить, то тогда получится ли к такой винде кабелем смартфон потом подключить и проделать из под нее все так, как из под обычной?)
Anbox не эмулятор,а система запуска полноценной среды Android прямо на текущем ядре Linux с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 3D-ускорения.
Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
Что с этим делать?
А как же qemu?
Лучше подскажите толковый бесплатный gui’вый дизассемблер под arm и aarch64, чтоб ещё пошагово отлаживать умел и содержимое регистров показывать/менять. ой, что-то я совсем много требую.
ошибка: snap «anbox» is not available on beta for this architecture (i386) but exists on
other architectures (amd64).
Что делать?
Привет залей куданибудь эту версию нигде не могу найти ее. Сейчас 3.01 на сайте.
При запуске Genymotion, выдает мне вот такое:
In order to work, Genymotion requires VirtualBox to be installed on your computer. You can download the latest version of VirtualBox from http://www.virtualbox.org/wiki/Downloads.
Уже установлен пакет virtualbox самой новой версии (5.2.18-dfsg-2
Если без GUI не работает, тогда прошу, подскажите легкую оболочку, безпроблемно отключаемую и не прописывающуюся в автозапуске.
Прошу помощи, я новичок, и найти не смог решения проблемы в интернете и на Вашем сайте.
Заранее спасибо.
Добрый день.
не получается установить ANBOX
у меня Linux mint 18.3 x64 cinnamon (INTEL)
вот что у меня происходит:
anbox-installer 100%[===================>] 339 —.-KB/s in 0s
2019-11-03 17:07:38 (37,7 MB/s) — «anbox-installer» сохранён [339/339]
$ chmod +x anbox-installer
celtic@le
For any further questions please ask on the #anbox IRC channel on the
FreeNode network or in the Anbox telegram group (https://t.me/anbox).
celtic@le
а что не так в первой части установки?
подскажите
Настраиваем Anbox: как запускать приложения Android в Linux без эмулятора
Содержание статьи
Начнем с того, что Anbox — не эмулятор. Это система запуска полноценной среды Android прямо на текущем ядре Linux с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 3D-ускорения. Нечто вроде Wine, который запускает приложения Windows без необходимости запуска Windows в виртуальной машине, но без присущих Wine глюков и недоработок.
Два главных преимущества Anbox — скорость и бесшовная интеграция с десктопом. Приложения запускаются безо всяких прослоек и эмуляции. А самое главное — они работают быстро. Во второй части мы подробнее рассмотрим, как работает Anbox, а пока установим его и посмотрим, что это такое.
Ставим
Ubuntu
Первое, что необходимо сделать, — это загрузить сам скрипт и дать ему права на исполнение:
Далее запускаем скрипт:
Скрипт попросит написать в терминале I AGREE, после чего установит Anbox в систему и предложит перезагрузить машину. После перезагрузки в меню появится пункт Anbox.
Устанавливаем Anbox в Ubuntu
Реверс малвари
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):
Готово! Ставь приложения, развлекайся, до встречи. Шучу, на самом деле есть множество подводных камней. Например, сразу после установки Anbox я решил протестировать, как в нем работает Opera Mini, тот самый браузер, который умеет быстро отображать странички, даже если интернет до тебя доходит с помощью голубиной почты. Ведь для десктопа его нет.
В результате на экране появилось вот что:
На самом деле в маркете полно подобных приложений, и с несовместимостями архитектуры ты будешь встречаться довольно-таки часто.
Вторая интересная особенность запуска приложений в отдельных десктопных окнах: далеко не каждое приложение готово смириться с тем, что сейчас его личико будут жестко сжимать или растягивать. Большинство современных приложений в этом случае поведут себя корректно — 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?
Чем 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.
Каждое приложение в своем собственном окне Anbox размещает с помощью модифицированного композитного менеджера hwcomposer, который Android использует для наложения графических слоев. Hwcomposer запрашивает все слои каждого приложения и отдает их Anbox, который затем формирует индивидуальные окна для отдельно взятых приложений.
Все эти технические решения позволяют сделать Anbox действительно быстрым, удобным в использовании и эффективным в плане расходования ресурсов «эмулятором». В том числе в 3D-приложениях.
Anbox состоит из двух компонентов: container manager и session manager.
Container manager управляет песочницами с работающим внутри окружением Android. Его задача — корректно запустить систему Android, поддерживать ее работу и корректно завершить.
Session manager, в свою очередь, отвечает за коммуникацию Android внутри песочницы и с основной системой Linux. Его задача — отвечать на запросы запуска приложений и распределять их по разным окнам.
В целом запуск приложения Android с помощью Anbox выглядит так:
Шаги 1–3 подготавливают Anbox и запускаются один раз, обычно при загрузке системы.
Такая архитектура позволяет сделать запуск приложений практически моментальным за счет небольшого (порядка 400 Мбайт) оверхеда по памяти в режиме простоя.
Выводы
Вне всяких сомнений, Anbox заслуживает внимания. Да, у него есть проблемы с совместимостью, он не умеет работать с твоей камерой и микрофоном, он падает. Но это альфа-версия, и для альфы она работает прекрасно.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.