No Image

Эмулятор андроида на linux

СОДЕРЖАНИЕ
0 просмотров
22 января 2020

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 — что очень удобно для эмулятора.

Читайте также:  Установил виндовс 7 не работает usb

Единственная причина, по которой 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 с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 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 #248. Checkm8

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.

Читайте также:  Установщик smd компонентов своими руками

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

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

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

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

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

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

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

Выводы

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

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

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

Общеизвестно, что Android и Linux – в каком-то смысле родственники. Во всяком случае, массовое убеждение именно такое. В реальности всё чуть сложнее: самая популярная мобильная ОС использует лишь ядро Линукса. А это значит, что прямой совместимости «из коробки» (насколько про обе системы вообще можно так говорить) не существует. Впрочем, когда нам нужен эмулятор Android для Linux, общее происхождение начинает играть свою роль.

Эмуляция Android-среды на Линуксе

В эмуляторах для Windows мы фактически запускаем виртуальную машину с Андроидом, которая требует уйму ресурсов на выполнение. В среде Линукс интеграция теоретически возможна на другом уровне: вместо отдельной «песочницы» система запускает мобильную платформу прямо на текущем ядре, благо менять его не особо и надо. Приложения при этом так упаковываются, что их можно выводить наружу в отдельных окнах. Более того: в них можно задействовать даже аппаратное 3D-ускорение, что выводит пользовательский опыт за границы скучноватых «песочниц». Для пользователя это означает, что приложения не будут тормозить, а ресурсы системы никто не будет расходовать зря.

На сегодня существует несколько реализаций запуска Android-приложений в Линуксе (считая официальный эмулятор от Google – The ARC Welder, сделанный как расширение для Chrome). Однако полноценная Android-среда в Linux появилась только в 2017 году. Это чудо называется Anbox и совместимо только с x86/64-процессорами, а также только с дистрибутивами Ubuntu (строго редакций 17.04, 16.10, 16.04, 14.04), Linux Mint, Neon и Elementary.

Установка Anbox

Сам по себе Anbox предлагается в виде автономного установочного пакета Snappy или в виде удалённого инсталлятора в репозитории, установить который можно путём запуска скрипта. Так, например, в Ubuntu это делается следующим образом:

$ wget https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh -O anbox-installer

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

$ chmod +x anbox-installer

  1. Если терминал попросит вас набрать в строке консоли «I AGREE», сделайте это.

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

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

Если вы предпочитаете скачать Snap-пакет, то команда для инсталляции будет такой:

sudo snap install –classic anbox-installer && anbox-installer

Затем введите цифру 1 и нажмите Enter, потом впечатайте «I AGREE» и подтвердите действие.

Установка приложений в Anbox

Эмулятор (ну хорошо, строго говоря – упаковщик, но для большинства он всё же эмулятор Андроид для Линукс) предназначен для запуска приложений. Так? В Google так не считают. «Корпорация добра» отказывается авторизовать устройства, если те не имеют сертификации. А наш Anbox – вообще не устройство, так что сертификацию он не пройдёт даже теоретически.

Тем не менее способ устанавливать приложения в Anbox есть. Дело в том, что, как и любое «железное» Android-устройство, Anbox имеет режим отладки по ADB, и он изначально активен. Осталось только установить набор команд ADB в саму систему. Для Ubuntu это можно сделать следующим запросом в терминал:

$ sudo apt-get install android-sdk-platform-tools

В число этих самых «Android SDK Platform Tools» входит и ADB.

После этого вам остаётся только скачивать установочные файлы нужных приложений. Ресурсов для этого огромное количество: от глобального apkmirror, до всем известного форума из цифры и трёх букв.

Запомните адрес, куда скачиваете файлы (допустим, Downloads). В Убунту команда для запуска приложений выглядит в общем случае так:

Вместо filename.apk нужно подставить имя файла приложения.

Таким образом Android-приложения будут запускаться в оконном режиме. Разумеется, производительность зависит от параметров системы, но в целом приложения будут работать достаточно быстро.

Особенности работы Android-приложений под Anbox

Хотя благодаря линуксовому ядру кажется, что проблем быть не должно, на самом деле нюансов предостаточно. Отметим следующие:

  • К управлению привыкать особо не придётся. Кнопка «назад» имитируется с помощью клавиши Esc, а вместо жестов по экрану можно пользоваться мышью.
  • Если приложение в принципе не поддерживает x86/64, то запустить его не получится. Это обратная сторона отказа от виртуальной машины.
  • Буфер обмена интегрируется с основной ОС. Увы, интеграции на более высоком уровне пока нет.
  • Существуют рецепты по интеграции Play Market в образ Android. Если вы им последуете, то с помощью Anbox сможете получить куда более функциональное решение. Но можно поступить проще и установить в обычном режиме сторонний магазин приложений.
Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector