Эмуляторами и виртуальными машинами на сегодняшний день сложно кого-то удивить. Зачастую это уже не инструмент системного администратора, который в свитере и с бородой укрощает демонов. Эмуляторы используют разработчики и геймеры. На них тестируют приложения Android до выхода в свет - это проще, чем держать под рукой дюжину моделей смартфонов.
Сегодня мы поговорим о том, как можно запустить приложения 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. Ещё раз выполняем обновление списка пакетов:
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 можно как из списка программ, так и из терминала:
anbox session-manager
3. Установка эмулятора Genymotion
Второй эмулятор на сегодня весьма интересен. Начнём с того, что он — облачный. Во-вторых, он платный для коммерческого использования. Хотя в нашем случае хватит и бесплатной лицензии.
Наконец, Genymotion предлагает эмуляцию уже готовых моделей смартфонов и планшетов, что очень хорошо для разработчиков. Можно сразу протестировать программу в разных режимах.
Для начала идём на сайт Genymotion, регистрируемся там и получаем на почту сообщение с подтверждением о регистрации. В нём кликаем по ссылке, чтобы подтвердить адрес и активизировать учётку.
После тыкаем по красной кнопке Trial в верхнем правом углу.
Нас перебрасывает на новую страницу, откуда можно скачать необходимый файл. В нашем случае это файл с расширением bin. Запускаем закачку, а пока она идёт, установим VirtualBox (если вдруг он не установлен).
В терминале набираем:
sudo apt install virtualbox
Жмём Enter, вводим пароль, когда система попросит подтверждения, нажимаем y. По окончании установки набираем в терминале:
ls
Эта команда выведет список директорий. Нам нужна Downloads или та, куда у вас по умолчанию скачиваются файлы. Вводим:
cd Downloads/
Жмём Enter, нас перебрасывает в папку. Снова вводим:
ls
Это даёт нам список файлов в папке. Нас интересует 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, кликнуть правой кнопкой по файлу и дать ему права на выполнение.
После этого устанавливаем:
sudo ./genymotion-2.12.1-linux_x64.bin
Нажимаем 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. Важно! При выходе без предварительной записи данные не сохраняются!
Далее в терминале вводим:
wget https://dl.google.com/linux/linux_signing_key.pub
Эта команда скачает ключ для доступа к 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 и переводить его в расширение. В терминале вводим команду:
chromeos-apk path/to/file.apk
У нас получилось расширение для браузера Chrome. Открываем его в chrome://extensions/, после чего запускаем. Если вы всё сделали правильно, новенькая программа должна запуститься.
Важно, что в этом варианте будут работать далеко не все приложения. Ведь, по сути, это пока тестовая возможность, а не релиз. Скорее всего «не заведутся» игры, системные приложения и просто «тяжёлые» программы.
Выводы
В целом, есть ещё много способов запустить Android-программы в Ubuntu. Можно использовать эмулятор Shashlik или вообще поставить Android x86 в VirtualBox. Можно использовать QEMU и эмулировать даже железо (при условии, что у вас мощный ПК). В конце концов, если у вас куча свободного времени, можно даже поэкспериментировать со связкой Wine + какие-угодно-эмуляторы-под-другие-ОС. Правда, гарантий работы никто не даст ?.
Если же серьёзно, то решения под Ubuntu 18.04 для работы с Android-приложениями есть. Остаётся выбрать.
как всегда - все есть, но все через одно место
Это точно.
Для винды есть нормальные эмуляторы, для линукса нет.
Ни один из описываемых способов нормально не работает.
Genymotion платный, и работает намного хуже чем бесплатный BlueStacks (который только под виндовс).
BlueStacks - это зонд. Он перехватывает и записывает к себе клавиатурные операции, обращенные не к нему, перехватывает страницы и данные из браузеров, ведёт список файлов на диске, а также много чего ещё, соперничая по сбору данных с win10. Конечно не факт, что другие эмуляторы такого не делают, но зачем использовать то, что точно является по сути шпионом.
Genymotion платен только для коммерческого использования. Пользуюсь им несколько лет и, на мой взгляд, он даже лучше, чем родной эмулятор, входящий в состав идешки Android Studio.
А Вы не устаете при каждой установке программ?
Да-да. Этот ваш Genymotion отстойная программа. Бесплатные операционки не потянут ни одного нужного мне приложения!
Genymotion бесплатный. Регишься и всё. Никто никаких денег с меня не просил.
Хоть кто то место нашенл , где все есть ))
Познавательная статья, кому-то может быть и пригодится. Android, хоть и основан на Ubuntu, достаточно "грязная" среда и ставить её приложение на относительно чистый Linux я бы не решился)
С чего вы взяли, что ведро основано на Ubuntu?!
Наверное связь построил :
Если Андроид построен на основе "Линукс", а Убунту это "Линукс", то Андроид=Убунту =))))))))))))
глупая связь: linux - ядро. вас не смутило, что есть кроме Ubuntu linux, ещё Debian linux, linux mint, red hat linux и так далее
Прикол в том что то что ты перечислил: Debian, mint и убунту одно и тоже считай...
Не удалось открыть сессию для виртуальной машины Google Pixel 2 - 8.0 - API 26 - 1080x1920.
VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED).
Код ошибки:
NS_ERROR_FAILURE (0x80004005)
Компонент:
ConsoleWrap
Интерфейс:
IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
P.S. ОС Linux Mint 19, Virtualbox v 5.2.10 Ubuntu r121806 Windows 7 на этой же виртуалке запускается нормально.
Как по мне проще установить андроид второй системой в загрузку
"не реклама ресурсов" - просто полезные статьи http://compizomania.blogspot.com/2018/05/phoenix-os-ubuntu-1804-bionic.html
и такой вариант http://compizomania.54672.x6.nabble.com/Android-x86-7-1-Nougat-x86-for-PC-Ubuntu-Linux-Mint-Debian-Alien-td6115.html
Обсуждает Миша Рыцаревъ: и а наоборот- а вот чтобы в какие смартфоны убунту можно было бы установить? (А то под этот "Андроид" жуть как много всякого малварьного срача- а под убунту-то его нет (нет его и под "яблокофоны". Но зато в них других недостатков хватает)).
И где можно купить смартфон (и планшет) с убунтой? (И бывают ли и такие андроидные модели, куда можно было бы поставить и две ОС? (Т.е. убунту рядом с "Андроидом")).
И а помимо этого- а какое ПО есть и под линукс для и диагностики и ремонта и бэкапа и перепрошивок смартфонов? (И вот существует много таких проблем в ОС, которые можно легко устранять и без перепрошивки, если знать, как. Однако в большинстве сервисцентров даже и по пустякам такие гаджеты предпочитают просто тупо заново перепрошить и все (и берут за это хорошие деньги. Хотя там весь труд- это всего лишь несколько раз нужные кнопки нажать и все. А денег берут за это столько, сколько многим их клиентам на работе целый день не легким трудом пахать надо. Где тогда в сети есть инструкции, как все, что себе нужно делать со своим гаджетом самостоятельно? (И а под линукс все ли ПО-инструменты есть, какое для этого надо? (У меня вот был случай- подхватил я в сети какую-то малварь, которую антивирус проглядел. Потом антивирус ее все же удалил. Однако удалил так, что много багов в прошивке потом появилось. В сети я нашел, что такое вполне бывает (в других ОС тоже бывает). Однако там же я нашел и описание, как это там выправить, изменив руками всего лишь несколько строк в одном системном файле и все. Но там было написано лишь о том, а как это из под винды делать. Искать описания таких способов и из под линукса было некогда (и это надо и знать, как искать)- отдал я тогда свой гаджет своему знакомому ремонтнику и он заново его перепрошил (хорошо, у меня знакомые такие есть- денег нет- помогли и так. Но в любом случае- а какое ПО-инструмент для "гаджетофонов" и под линуксом есть? (А инструкции, как не имея опыта сделать что-либо в их "мозгах" и самостоятельно?))))
Существует ли такое ПО для обслуживания смартфонов, которое есть только под винду? (Не исключаю, что это еще и от модели (и от производителя) "гаджетофона" может зависеть). А в таких случаях будет ли такое ПО нормально работать из под "Wine"? (Ну или если и винду и какое надо ПО в виртуалке запустить, то тогда получится ли к такой винде кабелем смартфон потом подключить и проделать из под нее все так, как из под обычной?)
Anbox не эмулятор,а система запуска полноценной среды Android прямо на текущем ядре Linux с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 3D-ускорения.
Мое приложение работает совместно с USB - приставкой. Android Studio не поддерживает отладку с каналом USB. Стоит - ли пробовать для отладки Anbox?
Приложение установлю в XUBUNTU, а приставку подсоединю к USB.
XUBUNTU есть 32 битная и 64 битная.
Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
Что с этим делать?
А как же qemu?
Лучше подскажите толковый бесплатный gui'вый дизассемблер под arm и aarch64, чтоб ещё пошагово отлаживать умел и содержимое регистров показывать/менять...ой, что-то я совсем много требую.
anbox не работает на Core2Duo . Ему нужен SSE 4.2
ошибка: 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~ubuntu18.04.3).
Сайт Genymotion - в глухой несознанке. Something went wrong. И обратная связь тоже 🙂
Добрый день, прошу подсказать работает ли anbox без gui?
Моя система GA-e3000n, 4Gb, 2Tb, стоит ubuntu 18.04 LTS без gui.
Подключен мини-ПК к телевизору по hdmi, стоит kodi в автозапуске, transmission, samba.
Дети попросили расширить функционал до андройд приставки, я установил по инструкции anbox, но тот отказывается запускаться из терминала, выдает:
sudo anbox session-manager
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
Stack trace (most recent call last):
#26 Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in
#25 Object "/snap/anbox/158/usr/bin/anbox", at 0x4a8b28, in _start
#24 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7fb67029e82f, in __libc_start_main
#23 Object "/snap/anbox/158/usr/bin/anbox", at 0x4a401e, in main
#22 Object "/snap/anbox/158/usr/bin/anbox", at 0x4bae57, in anbox::Daemon::Run(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)
#21 Object "/snap/anbox/158/usr/bin/anbox", at 0x4b005f, in anbox::cli::CommandWithSubcommands::run(anbox::cli::Command::Context const&)
#20 Object "/snap/anbox/158/usr/bin/anbox", at 0x4afb21, in anbox::cli::CommandWithFlagsAndAction::run(anbox::cli::Command::Context const&)
#19 Object "/snap/anbox/158/usr/bin/anbox", at 0x4dd9a2, in
#18 Object "/snap/anbox/158/usr/bin/anbox", at 0x51c26b, in anbox::platform::create(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::shared_ptr const&, anbox::graphics::Rect const&, bool)
#17 Object "/snap/anbox/158/usr/bin/anbox", at 0x521a50, in anbox::platform::sdl::Platform::Platform(std::shared_ptr const&, anbox::graphics::Rect const&, bool)
#16 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0", at 0x7fb671b36396, in
#15 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0", at 0x7fb671bceee0, in
#14 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0", at 0x7fb671be27cc, in
#13 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0", at 0x7fb671be11d0, in
#12 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0", at 0x7fb671bcff22, in
#11 Object "/lib/x86_64-linux-gnu/libdl.so.2", at 0x7fb67122dfa0, in dlopen
#10 Object "/lib/x86_64-linux-gnu/libdl.so.2", at 0x7fb67122e570, in
#9 Object "/lib64/ld-linux-x86-64.so.2", at 0x7fb6727da573, in
#8 Object "/lib/x86_64-linux-gnu/libdl.so.2", at 0x7fb67122df08, in
#7 Object "/lib64/ld-linux-x86-64.so.2", at 0x7fb6727dedb8, in
#6 Object "/lib64/ld-linux-x86-64.so.2", at 0x7fb6727da573, in
#5 Object "/lib64/ld-linux-x86-64.so.2", at 0x7fb6727df8f1, in
#4 Object "/lib64/ld-linux-x86-64.so.2", at 0x7fb6727da7da, in
#3 Object "/lib64/ld-linux-x86-64.so.2", at 0x7fb6727da6c9, in
#2 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libmirprotobuf.so.3", at 0x7fb66718d408, in
#1 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libprotobuf-lite.so.9", at 0x7fb67100a832, in google::protobuf::internal::OnShutdown(void (*)())
#0 Object "/snap/anbox/158/usr/lib/x86_64-linux-gnu/libprotobuf-lite.so.9", at 0x7fb67100a516, in google::protobuf::internal::Mutex::Lock()
Segmentation fault (Address not mapped to object [(nil)])
Segmentation fault
Если без GUI не работает, тогда прошу, подскажите легкую оболочку, безпроблемно отключаемую и не прописывающуюся в автозапуске.
Прошу помощи, я новичок, и найти не смог решения проблемы в интернете и на Вашем сайте.
Заранее спасибо.
Добрый день.
не получается установить ANBOX
у меня Linux mint 18.3 x64 cinnamon (INTEL)
вот что у меня происходит:
celtic@le ~ $ wget https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh -O anbox-installer
—2019-11-03 17:07:37— https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh
Распознаётся raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.36.133
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|151.101.36.133|:443… соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 339 [text/plain]
Сохранение в каталог: ««anbox-installer»».
anbox-installer 100%[===================>] 339 —.-KB/s in 0s
2019-11-03 17:07:38 (37,7 MB/s) — «anbox-installer» сохранён [339/339]
celtic@le ~ $ chmod +x anbox-installer
celtic@le ~ $ sudo ./anbox-installer
[sudo] пароль для celtic:
The anbox-installer is deprecated. Please find updated installation
instructions here https://github.com/anbox/anbox/blob/master/docs/install.md
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 ~ $
вторую часть установки нашёл в репозитарии linux mint
http://images.vfl.ru/ii/1572791581/442f6079/28432622.png
а что не так в первой части установки?
подскажите
GENYMOTION стал платным?
Нет, для персонального использования бесплатен все так-же
Здравствуйте! Спасибо Вам за Ваш сайт, очень часто пользуюсь
Всем добра!
Не удалось поставить модули ядра, репозиторий не считается доверенным. Нашел инструкцию по установке:
https://github.com/anbox/anbox-modules
Не забываем делать симлинк:
sudo ln -s /snap/bin/anbox /usr/bin/anbox
* daemon not running; starting now at tcp:5037
* daemon started successfully
error: no devices/emulators found
adb: error: failed to get feature set: no devices/emulators found
- waiting for device -
Что делать при такой ошибки?
самая большая проблема linux'оидов - не доступность для простого юзера!!! какого хера,мать вашу, установить что-то это 100500 команд, и сидим наслаждаемся пасьянсом... мммм... дибилы!!!!!!!!!! просрали рынок тогда, и хер сейчас завоюет Linux. прикиньте в жизни было бы как в Linux? хочу покакать! ок! войди с правами админа! потом введи команду открытия МАРШРУТА до толчка! потом введи команду из триллиарда символов, что бы опустить стульчак! и это ты еще не близко... короче обсеришься на этапе спуска штанов, а еще и трусы есть... мракобесы!!! сам сижу на ubuntu... давно... маме такое не поставлю, нет возможности прийти и помочь
Поставил на Linux Mint Tessa Anbox, при попытке установить приложение пишет:
"adb: error: failed to get feature set: no devices/emulators found
- waiting for device -", и далее ничего не происходит.
Связано ли это с процессором? Ранее в ходе установки Anbox появилась ошибка:
"cannot perform the following tasks:
- Run install hook of "anbox" snap if present (run hook "install":
-----
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory",
и сообщение:
"The CPU of your computer (Intel(R) Core(TM)2 Quad CPU @ 2.40GHz) does not support all
features Anbox requires.
It is missing support for the following features: SSE 4.1, SSE 4.2, SSSE 3"...
Все установилось, но НЕ запустилось!!!
****************************
OS: Pop!_OS 22.04 LTS x86_64
Kernel: 6.2.6-76060206-generic
DE: GNOME 42.5
CPU: AMD Ryzen 5 5600G
GPU: AMD ATI Radeon RX 6600/6600
Memory: 31980MiB
SESSION_TYPE: x11