Главная >> Инструкции >> Запуск Android приложений на Linux

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

Эмуляторами и виртуальными машинами на сегодняшний день сложно кого-то удивить. Зачастую это уже не инструмент системного администратора, который в свитере и с бородой укрощает демонов. Эмуляторы используют разработчики и геймеры. На них тестируют приложения 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-приложениями есть. Остаётся выбрать.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

35 комментариев к “Запуск Android приложений на Linux”

    • Это точно.
      Для винды есть нормальные эмуляторы, для линукса нет.
      Ни один из описываемых способов нормально не работает.
      Genymotion платный, и работает намного хуже чем бесплатный BlueStacks (который только под виндовс).

      Ответить
      • BlueStacks - это зонд. Он перехватывает и записывает к себе клавиатурные операции, обращенные не к нему, перехватывает страницы и данные из браузеров, ведёт список файлов на диске, а также много чего ещё, соперничая по сбору данных с win10. Конечно не факт, что другие эмуляторы такого не делают, но зачем использовать то, что точно является по сути шпионом.

        Ответить
      • Genymotion платен только для коммерческого использования. Пользуюсь им несколько лет и, на мой взгляд, он даже лучше, чем родной эмулятор, входящий в состав идешки Android Studio.

        Ответить
  1. Познавательная статья, кому-то может быть и пригодится. Android, хоть и основан на Ubuntu, достаточно "грязная" среда и ставить её приложение на относительно чистый Linux я бы не решился)

    Ответить
  2. Не удалось открыть сессию для виртуальной машины 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 на этой же виртуалке запускается нормально.

    Ответить
  3. Обсуждает Миша Рыцаревъ: и а наоборот- а вот чтобы в какие смартфоны убунту можно было бы установить? (А то под этот "Андроид" жуть как много всякого малварьного срача- а под убунту-то его нет (нет его и под "яблокофоны". Но зато в них других недостатков хватает)).
    И где можно купить смартфон (и планшет) с убунтой? (И бывают ли и такие андроидные модели, куда можно было бы поставить и две ОС? (Т.е. убунту рядом с "Андроидом")).

    И а помимо этого- а какое ПО есть и под линукс для и диагностики и ремонта и бэкапа и перепрошивок смартфонов? (И вот существует много таких проблем в ОС, которые можно легко устранять и без перепрошивки, если знать, как. Однако в большинстве сервисцентров даже и по пустякам такие гаджеты предпочитают просто тупо заново перепрошить и все (и берут за это хорошие деньги. Хотя там весь труд- это всего лишь несколько раз нужные кнопки нажать и все. А денег берут за это столько, сколько многим их клиентам на работе целый день не легким трудом пахать надо. Где тогда в сети есть инструкции, как все, что себе нужно делать со своим гаджетом самостоятельно? (И а под линукс все ли ПО-инструменты есть, какое для этого надо? (У меня вот был случай- подхватил я в сети какую-то малварь, которую антивирус проглядел. Потом антивирус ее все же удалил. Однако удалил так, что много багов в прошивке потом появилось. В сети я нашел, что такое вполне бывает (в других ОС тоже бывает). Однако там же я нашел и описание, как это там выправить, изменив руками всего лишь несколько строк в одном системном файле и все. Но там было написано лишь о том, а как это из под винды делать. Искать описания таких способов и из под линукса было некогда (и это надо и знать, как искать)- отдал я тогда свой гаджет своему знакомому ремонтнику и он заново его перепрошил (хорошо, у меня знакомые такие есть- денег нет- помогли и так. Но в любом случае- а какое ПО-инструмент для "гаджетофонов" и под линуксом есть? (А инструкции, как не имея опыта сделать что-либо в их "мозгах" и самостоятельно?))))

    Существует ли такое ПО для обслуживания смартфонов, которое есть только под винду? (Не исключаю, что это еще и от модели (и от производителя) "гаджетофона" может зависеть). А в таких случаях будет ли такое ПО нормально работать из под "Wine"? (Ну или если и винду и какое надо ПО в виртуалке запустить, то тогда получится ли к такой винде кабелем смартфон потом подключить и проделать из под нее все так, как из под обычной?)

    Ответить
  4. Anbox не эмулятор,а система запуска полноценной среды Android прямо на текущем ядре Linux с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 3D-ускорения.

    Ответить
  5. Мое приложение работает совместно с USB - приставкой. Android Studio не поддерживает отладку с каналом USB. Стоит - ли пробовать для отладки Anbox?
    Приложение установлю в XUBUNTU, а приставку подсоединю к USB.
    XUBUNTU есть 32 битная и 64 битная.

    Ответить
  6. А как же qemu?
    Лучше подскажите толковый бесплатный gui'вый дизассемблер под arm и aarch64, чтоб ещё пошагово отлаживать умел и содержимое регистров показывать/менять...ой, что-то я совсем много требую.

    Ответить
  7. Добрый день, прошу подсказать работает ли 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 не работает, тогда прошу, подскажите легкую оболочку, безпроблемно отключаемую и не прописывающуюся в автозапуске.
    Прошу помощи, я новичок, и найти не смог решения проблемы в интернете и на Вашем сайте.
    Заранее спасибо.

    Ответить
  8. Добрый день.
    не получается установить 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

    а что не так в первой части установки?
    подскажите

    Ответить
  9. * 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 -

    Что делать при такой ошибки?

    Ответить
  10. самая большая проблема linux'оидов - не доступность для простого юзера!!! какого хера,мать вашу, установить что-то это 100500 команд, и сидим наслаждаемся пасьянсом... мммм... дибилы!!!!!!!!!! просрали рынок тогда, и хер сейчас завоюет Linux. прикиньте в жизни было бы как в Linux? хочу покакать! ок! войди с правами админа! потом введи команду открытия МАРШРУТА до толчка! потом введи команду из триллиарда символов, что бы опустить стульчак! и это ты еще не близко... короче обсеришься на этапе спуска штанов, а еще и трусы есть... мракобесы!!! сам сижу на ubuntu... давно... маме такое не поставлю, нет возможности прийти и помочь

    Ответить
  11. Поставил на 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"...

    Ответить
  12. Все установилось, но НЕ запустилось!!!
    ****************************
    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

    Ответить

Оставьте комментарий