Как установить android приложение на linux. Запуск полноценных ОС на Android. Чем Anbox отличается от Shashlik

Существует масса эмуляторов Android для всех возможных операционок. Худшие из них еле тащатся, лучшие работают быстро, а иногда даже позволяют поиграть. Вторые обычно доступны только для Windows, а в Linux работают так себе. Но сегодня на улице линуксоидов праздник: у нас появился способ запускать приложения Android прямо в Linux, без всякой эмуляции, тормозов, каждое в отдельном окошке с возможностью изменения размера. Встречай: Anbox - лучший способ запуска приложений Android на десктопе.

Чем Anbox отличается от Shashlik

У разработчиков 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 заслуживает внимания. Да, у него есть проблемы с совместимостью, он не умеет работать с твоей камерой и микрофоном, он падает. Но это альфа-версия, и для альфы она работает прекрасно.

Затевая обзор лучших эмуляторов Android для Linux, мы решили - что, возможно, и неудивительно — поохотиться за эмуляторами. Однако быстренько осознали, что способов достижения нашей цели - запуска приложений Android в Linux - имеется множество. Поэтому мы также включили Anbox, несмотря на то, что данная программа находится на стадии пре-альфа Anbox следует той же философии, что и WINE: оба пытаются реализовать как можно большую часть системных вызовов Андроид. Этот подход эффективнее эмуляции, поскольку ваши приложения будут работать нативно. Требования оборудования к эмулятору до боли понятны при работе на компьютере с небольшой памятью.

Как мы тестировали эмуляторы

Мы начали с установки разных решений, чтобы посмотреть, с какими проблемами вы можете столкнуться перед тем, как будете готовы запускать приложения. Например, Anbox, согласно информации на его сайте, находится на стадии пре-альфа. Далее мы попытались установить приложения напрямую, с помощью Google Play и технологий сторонней загрузки. Один из методов - использовать adb на работающем экземпляре. Мы также замерили производительность каждого эмулятора и требуемый объем памяти.

Еще один аспект тестирования - зачем разработан каждый пакет; например, для того, чтобы играть в игры Android на своем ПК. Кстати, наша тестовая машина - Intel Core i3 CPU с 4 ГБ памяти, что для запуска эмуляторов весьма ограничивает. И если у вас есть серьезная причина запускать приложения Android на своем компьютере Linux, купите и установите ОЗУ побольше.

Эмуляторы Android для Linux

Некоторые из пакетов поставляются в виде ISO-образов, которые вы копируете на флешку USB и запускаете оттуда. Вы также можете установить Android-x86 как отдельную ОС с помощью файла Grub. Данный подход означает, что перед вами уже не эмулятор, а скорее целый дистрибутив. Прежде чем выбрать определенный пакет, спросите себя, какая у вас цель. Одни пакеты разработаны для геймеров, а другие - в помощь тестированию новых программ. Для разработки и тестирования вам понадобится отнюдь не тот пакет, который задуман для употребления развлекательных приложений Android.

Android Virtual Device

Android Virtual Device - самый зрелый пакет для разработки и тестирования. Если вы начнете с Android Studio, он идеально интегрирован и естественно применяется для тестирования. Правда, последний релиз содержит ошибку, и вам придется запускать AVD из командной строки с помощью параметра -use-system-libs.

Эмулятор Android для Linux Android Virtual Device

При работе в виртуальном устройстве у вас есть все необходимые функции, включая GPS, эмуляцию камеры и имитацию вращения. AVD работает хорошо, и добавив Google Play, вы можете использовать его для обычных приложений. Однако игры могут замедляться, раз уж вы используете виртуальное устройство. Только самые современные CPU позволяют запустить несколько виртуальных CPUy. Другие, не столь требовательные к графике и CPU приложения будут работать нормально; но вообще AVD больше всего подходит для тестирования новых приложений, которые вы создали.

Android-x86

Android-x86 не совсем типичен, ибо разработан как дистрибутив. Для его установки можно использовать файл rpm и запустить свой ноутбук как устройство Android. Перезагрузившись, можно сразу перейти в свой обычный профиль пользователя и установить приложения из Google Play. Он будет очень отзывчивым устройством, поскольку лежащая в основе система меньше. И, конечно, можно вместо этого настроить свою установку Linux. При эмуляции тоже будут проблемы с ресурсами, что и у других эмуляторов Сравнения, но менее сильные.


Эмулятор Андроид для Linux Android-x86

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

Anbox

Мы не могли не включить Anbox в наше Сравнение, хотя понимали, что это может выйти нам боком. Что и оправдалось. Заставить Anbox работать удается с переменным успехом, поскольку, по словам разработчиков, он на стадии пре-альфа. Когда он работает, это отличный инструмент для использования с единичными приложениями, ведь его системные требования немногим больше требований обычного приложения.


Эмулятор Android для Linux Anbox

В процессе установки используется Snap, что делает установку и удаление простым. Помните, что на настоящий момент вам нужно установить anbox-installer Snap, который, в свою очередь, установит Anbox. Скрипт установщика запускает apt, который устанавливает библиотеки и модули ядра, требуемые для его работы. Только самые авантюрные пользователи могут рискнуть, пока не вышел первый бета-релиз. Обратите внимание, что этот пакет скорее является контейнером, нежели эмулятором.

Genymotion

Genymotion как минимум не уступит AVD в том, что касается имитации аппаратных функций, и он потребляет столько же памяти и ресурсов на компьютере. Если сразу же установить Gapps, можно через Google Play установить приложения для всего. С учетом его потребления ресурсов, вам понадобится много памяти, чтобы запускать большие приложения, но основная цель данного эмулятора - тестирование новых программ так, чтобы это не вызвало никаких проблем.


Эмулятор Андроид для Linux Genymotion

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

Shashlik

Shashlik тоже находится на очень ранних стадиях разработки, что становится очевидным при попытке его запустить. Установщик работает по умолчанию, и даже скрипт установки приложений работает безукоризненно. При попытке запустить приложения всё усложняется. Многие настройки встроены в скрипт запуска, и найти параметры для его запуска-целая проблема. Поддержка тоже, судя по всему, зашла в тупик. Самая последняя работа над деревом разработки на github наблюдалась два года назад.


Эмулятор Android для Linux Shashlik

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

Установка Android эмулятора в Linux

При установке программ в популярных дистрибутивах мы используем знакомые менеджеры пакетов, такие как apt, dnf и т.д. Однако иногда установка программ делается посредством простого скачивания двоичного пакета, вроде Anbox. Он поставляется в формате Snap, стандарта, разработанного и до сих пор поддерживаемого Canonical. Anbox - программа. находящаяся на стадии пре-альфа, и даже если установка вам удастся, заставить ее работать - совсем другое дело.

Стандартный способ эмуляции устройств Android - использовать пакет Android Virtual Device для Android Studio. Его можно запустить и без Studio, если вам надо просто опробовать приложение. С учетом потребляемых Android Studio ресурсов, это полезная опция. Правда, лучше всего устанавливать эмулятор как часть Studio.

Android-x86 создается как новый дистрибутив, когда вы устанавливаете файл rpm. Он добавляет запись в меню Grub, так что при следующей загрузке вы просто можете выбрать ее и запустить свой компьютер как устройство Android. Чтобы запустить его параллельно своим обычным задачам, нужен VirtualBox или QEmu. Вообще-то многие эмуляторы в нашем обзор используют для виртуализации VirtualBox.

Больше всех ресурсов при запуске потребляет Genymotion. Однако при наличии VirtualBox его установка проста. Чтобы его установить, скачайте и запустите двоичный установщик. При первом запуске приложения никаких виртуальных устройств еще нет, и вам надо будет выбрать их из обширного списка; скачивание и настройка происходят автоматически.

Shashlik исповедует ту же философию, что и Anbox. но обращается к эмулятору QEmu. Несмотря на это, он быстр и, кроме того, применяет простой скрипт установки для побочной загрузки файлов арк. Чтобы установить Shashlik, можно использовать пакет Debian с командой dpkg -i. После установки вам может понадобиться изменить некоторые параметры - например, задействовать GPU. Для этого следует открыть и отредактировать скрипт Python shashlik-run.

Производительность Android эмуляторов

Для тестирования этих пакетов мы взяли 4-ГБ компьютер, что оказалось далеко от идеала. Причина в том, что обычно каждой виртуальной машине нужно около 1 ГБ памяти, и полнофункциональный рабочий стол Gnome забирает 1.5 ГБ несколькими уведомлениями и синхронизацией облачного хранилища. Запуская Firefox, вы приближаетесь к быстрому заполнению и должны экономить память.

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

Если вам просто надо запустить свой ПК в качестве устройства Android, используйте Android_x86, он работает на редкость хорошо.

Другие пакеты запускаются через виртуализацию, а конкретно - из VirtualBox, что усложняет их запуск вместе с другими программами. Иными словами, если вы хотите разрабатывать и тестировать приложения Android, заведите компьютер на 16 ГБ - и сможете запустить эмулятор параллельно своей IDE.

Наиболее способный и интегрированный выбор - тандем Android Studio и AVD при разработке и тестировании на одном компьютере. Чтобы имитировать многие функции, например, камеру, GPS и наклон телефона, удобно использовать Genymotion, это отличный инструмент. Кроме того, он показывает экран в точности таким, как он выглядит на настоящем физическом устройстве.

Удобство в работе с эмулятором

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

Другие варианты применения - на коммерческих серверах, где виртуализация пригодится для целей безопасности и проблем балансировки нагрузки. В данном разделе мы продемонстрируем, для каких целей будут всего удобнее конкретные пакеты.

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

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

Управление приложениями в эмуляторе

Когда ваш эмулятор запустится, пора установить любимые приложения. На обычном устройстве Android у вас будет Google Play или даже FDroid. В эмуляторах для доступа к Play Store обычно надо установить Gapps. Есть и другие способы добавить приложения на ваш виртуальный телефон. Можно использовать на виртуальном устройстве; он работает на эмуляторах и контейнерных решениях вроде Anbox. В Android_x86 установлен по умолчанию Play Store, что дает возможность очень быстрого старта.

С AVD вы можете запустить установленные приложения или приложение, которое вы разрабатываете в Android Studio. Установка приложений с помощью Google Play включено в некоторые образы, но не во все. Еще один способ установить из apk - перекинуть файл в окно эмулятора. Это мгновенно установит приложение - или, по крайней мере, попытается это сделать. Genymotion также поддерживает drag-and-drop. В любом случае apk должен быть для х86. или установка не получится. Кроме того, перед началом вам потребуется Adb.

Вы также можете попробовать поработать с Shashlik. Shashlik функционирует как контейнер, во многом напоминая Anbox. но располагает встроенной функцией установки. Как только вы установите приложение. оно появится в виде приложения в вашем списке рабочего стола. На нашем экземпляре рабочего стола Gnome при вводе shashlik’ отображаются все установленные приложения. Затем вы окажетесь в состоянии запускать свои любимые приложения напрямую, как остальные установленные.

Документация и поддержка эмулятора

Документация обычно является слабым звеном в любительских проектах, что вызывает сожаления, если предлагаемые проекты настолько элегантны. В нашем Сравнении были те же результаты, у Android Virtual Device имеется вся документация и поддержка, о которой только можно мечтать, и когда вы используете его вместе с Android Studio, он еще лучше. У Genymotion есть отличный FAQ с основными решениями, чтобы помочь вам приступить к работе, а если вы работаете профессионально, то имеется платная версия.

Документация - высшего класса и явно предназначена активным разработчикам. Она самая лучшая. Android~х86 весьма зрелый и имеет фантастическую документацию, с отличным FAQ. Помощь сообщества осуществляется через Google Groups. Они активны и могут помочь вам, если у вас будут проблемы. Anbox настолько новый, что есть даже документация по его установке и началу работы. Но при этом, хотя FAQ довольно понятный, другая документация скудна. Такую нехватку мы можем простить, ведь программа находится на стадии пре-альфа, и большинство функций пока не написаны, что уж говорить об их документации.

Мы надеемся, что работа над Anbox продолжится, потому что это - эффективный способ перенести приложения Android на Linux. Если вы хотите внести свой вклад в разработку, загляните на страницу помощи. При том, что файл закачки для самого Anbox всего 1.5 ГБ. единственное, что вам нужно принять во внимание - дерево разработки Android. Shashlik задействует установку Арк, но программа далеко не столь хорошо документирована.

Активность разработки эмулятора

Используя программу, мы хотим знать, как можно будет решать проблемы. Для этого нужна поддержка или постоянная разработка. В случае эмуляторов из нашего Сравнения, как и ожидалось, самыми активными являются Genymotion и приложения Google. Однако у Genymotion имеется солидный вклад в облако и иные профессиональные решения. поэтому любители могут оказаться отброшенными его корпоративным рвением. Естественно, Android Virtual Device тоже силен в этом отношении.

С остальными проектами всё менее ясно, и нам пришлось проверять их активность на их web-страницах и GitHub.

Android_х86 выпускал новую версию в июне 2017 г. и, возможно, выпустил еще одну до публикации нашего обзора. Этот проект очень активен - он буквально неостановим. Для его разработчиков и пользователей наступает самое волнующее время. Желая помочь разработке, имейте в виду, что исходное дерево более 10 ГБ. так что заготовьте место на диске.

Anbox работает ежедневно и еженедельно пополняет исходник - этот проект прямо-таки на взлете! Он будет ценным добавлением в список программ для Linux. Это особенно удобно, если вы уже используете приложение на телефоне и хотите и дальше работать 8 привычном интерфейсе. Многие приложения Android потребляют очень мало памяти и весьма эффективны. Если вы хотите помочь, инструкции весьма просты для тех, кто уже умеет обращаться с .

У Shashlik не наблюдается явной активности на его web-странице или GitHub вот уже два года. К сожалению, возможно, придется признать крах этого проекта. Код всё еще доступен на GitHub, на случай, если найдется отважная душа со свободным временем и желанием приняться за разработку.

Доступность источника

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

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

Всё дерево Android доступно на www.source.android.com. Пакет, который включает набор инструментов dev, весит около 10 ГБ, но будет умно отвести на него 20 ГБ.

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

Android_x86 имеет размер 4.5 МБ. поверх дерева ядра. Проект по большей части использует C++ и скрипты, в основном в оболочке. Этот проект интереснее всего, если вы хотите запускать Android на других устройствах, а не когда вы хотите тестировать приложения для мобильных устройств.

Исходник для скачивания Anbox невелик, всего 1.5 МБ. а программируется Anbox по большей части на C++. Если вы хотите изучить технологию контейнеров, вы можете взяться за некоторые задачи в этом проекте, поскольку именно она там используется. Если вы пожелали серьезно изучить самую важную используемую в настоящее время технологию, здесь-то и копайте. Anbox размещен на GitHub.

Genymotion реализует собственный код на C++, и большая часть его скриптов использует Perl. Скрипты используют модифицированное ядро для виртуальных машин. Их исходный код для скачивания весит 135 МБ.

Исходным кодом Shashlik, похоже, больше никто не занимается, но он доступен на GitHub. Есть даже ответвление, которое обновлялось в течение 2017 г., так что надежда не угасает. Кто-то сделал файл Docker, чтобы можно было запускать его с контейнерами Docker. Скачиваются 6 МБ. а программирование велось на C++ и С. Скрипты в основном написаны на Python.

Выводы

Android стал ведущей ОС в смартфонах. Всё большая и большая часть сетевой активности имеет мобильное происхождение. Любой новый web-дизайн должен быть готов для мобильного использования. И любая попытка действий в Сети или в области программирования должна учитывать это. Чтобы ваша web-страница или программа достигла как можно большего количества людей, вам надо перенести ее на мобильный, если тут есть смысл для вашего приложения. Чтобы этого добиться, вы должны или напрямую писать его для мобильного, или найти решение, объединяющее оба подхода. В нашем обзоре мы рассматривали возможность сделать мобильные программы доступными на любом устройстве Linux.

Если вы хотите протестировать программу для разных устройств 8 нескольких сценариях, два коммерческих решения. Android Virtual Device и Genymotion, намного превосходят остальные. Для разработчиков они вполне универсальны и полезны.

Для тех, кто просто хочет запустить приложение или игру на своем рабочем столе, больше подойдут другие приложения. Anbox и Shashlik разработаны как раз для этой цели. К сожалению, они недостаточно зрелые для использования AVD. Android Studio - пакет, лучше всего подходящий для разработки приложений специально для Android. Они работают в тандеме для разработки и тестирования. Genymotion - еще одна весьма достойная среда для поддержки вашего тестирования.

Другие пакеты более интересны в случаях, когда вы используете существующие приложения. Кроме того, вы можете использовать их в качестве стартовой точки, если хотите больше узнать о С и C++, и, возможно. перейти к программированию ядра.

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

В эмуляторах для 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 это делается следующим образом:

  1. Загрузите скрипт:

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


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

$ chmod +x anbox-installer

  1. Запустите скрипт:

$ sudo ./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). В Убунту команда для запуска приложений выглядит в общем случае так:

$ adb install ~/Downloads/filename.apk

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

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

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

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

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

Canonical создаёт среду исполнения Android, которая позволит запуск андроид программ в Убунту.

Android - это основанная на linux платформа от Google. Каждая новая версия улучшает платформу и позволяет больше возможностей для производителей телефонов и мобильных операторов. Есть даже порт Android для x86 платформы, что даёт некоторым людям надежду на занятие рынка нетбуков. Но некоторые аналитики считают, что Андроид плохо подходит для нетбуков.

Проект от Intel под названием Moblin, Canonical проект Ubuntu Netbook Remix, Google Chromebook лучше вписываются в рамки нетбуков, благодаря оптимизированному и дружественному интерфейсу и лучшей совместимости с чипами Atom.

Android использует ядро Linux, но он не совсем Linux платформа. Нет простого и лёгкого способа портировать программы Java с десктопного Linux"а на Android. Java программы, написанные для работы в Dalvik андроида, так же не могут работать в обычных Java машинах. Всё это делает Android какой-то "островной" платформой.

Canonical создаёт специализированную среду исполнения Android, которая позволит запуск андроид программ в Убунту так же как осуществляется запуск обычных, родных программ.

Некоторые технические детали о данной среде исполнения Андроида были представлены разработчиками Canonical Майклом Фреем (Michael Frey) и Debbie Beliveau. Разработчики создали рабочий прототип и успешно скомпилировали Ubuntu libc вместо Android libc и запустили всё на обычном ядре Ubuntu.

Так же планируется вырезать всё специфичные для Андроида компоненты, не нужные для запуска программ в Убунту.

Сложная андроидная система для межпроцессного взаимодействия (Inter-Process Communication) под названием Binder требует специальный драйвер, чтобы работать корректно. Этот драйвер проблематично перенести и поэтому в прототипе используется временный обходной манёвр, чтобы обойти Binder, но разработчики надеются, что необходимые патчи вскоре помогут исправить ситуацию и среда исполнения будет работать ещё корректнее.

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

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

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

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

Платформа Андроид весьма привлекательна для коммерческих поставщиков программного обеспечения и возможность использовать данное ПО в обычном дистрибутиве Linux может быть очень полезной для пользователей.

От себя лично хочется добавить то, что по моему мнению осталось за кадром. Не хочет ли Canonical для Ubuntu Touch обеспечить запуск программ Android? Если это так, то это будет бомба! Родные, нативные программы Ubuntu Touch и возможность юзать накопленный багаж программ Android!

Подробная пошаговая инструкция по установке и использованию эмулятора VirtualBox для использования совместно с Android Studio в ОС Ubuntu. Основная задача: использовать виртуальное устройство в VirtualBox для разработки и запуска приложений из Android Studio.

Особенно актуально использование интерфейса Bluetooth в виртуальном устройстве VirtualBox, т.к. большинство эмуляторов его не поддерживает. С помощью этой инструкции можно подключить виртуальную машину к интерфейсу Bluetooth компьютера.

1. Установка VirtualBox

VirtualBox можно установить через «Центр приложений Ubuntu». После установки через терминал следует добавить текушего пользователя в группу vboxusers, это нужно для того, чтобы иметь доступ к реальным USB-устройствам через VirtualBox:

Sudo adduser имя_пользователя vboxusers

имя_пользователя — имя текущего пользователя Ubuntu.

После этого следует перезапустить сеанс пользователя или перезагрузиться.

2. Создание виртуальной машины VirtualBox

Создадим виртуальную машину с произвольным именем, на основе Linux / Other Linux (32-bit).



Оперативная память будет 512 Мб, этого вполне достаточно.
Далее создадим новый виртуальный диск, лучше использовать не менее 2 Гб, т.к. система займёт порялка 700 Мб. Тип диска VDI (VirtualBox Disk Image), фиксированный виртуальный жёсткий диск.

Если создать слишком маленький по объёму виртуальный диск, можно поймать ошибку:
Failure , лечится увеличением объёма виртуального диска.

3. Установка ОС Android

Перед установкой системы Android следует скачать её образ c android-x86.org . В данной инструкции использован образ

Запустим созданную виртуальную машину. После этого сразу же будет предложено выбрать загрузочный диск, следует выбрать скачанный образ ОС Android в формате iso. Далее описана последовательность действий со скриншотами.

Выбираем установку системы:




Создаём раздел для установки:




В указанном ниже диалоге выбираем «New» / «Primary», оставляем полный размер виртуального диска, далее маркируем диск как «Bootable», нажимаем «Write» и «Quit»:




Теперь выбираем созданный раздел для установки системы:



Форматируем раздел в ext3:








Соглашаемся на установку загрузчика GRUB:




Соглашаемся на установку прав чтения/записи для файловой системы, это пригодится в будущем:




Установка завершена, проверим установку запустив эмулятор:




При первом запуске нужно выполнить настройки ОС Android. Подключаться по Wi-Fi не нужно, вводить данные аккаунта Google тоже.

4. Настройка виртуальной машины

Перед изменением настроек виртуальную машину нужно выключить.

Основная настройка, которую важно указать, это режим сетевого подключения, нам нужен «Сетевой мост» (bridge). Так как в моём случае все устройства подключены через роутер по Wi-Fi, я выбрал интерфейс wlan0, а не eth0.


В разделе «Система» следует установить редим работы манипулятора курсора «PS/2 мышь», при таком режиме манипулятора удобно работать с ПК. В той же вкладке можно отключить устройство «Дискета».

Полезно дополнительно увеличить размер видеопамяти до 32 Мб в разделе «Дисплей».

5. Получение IP-адреса виртуального устройства

Запускаем виртуальную машину и ждём окончания загрузки.








Для определения IP-адреса виртуального устройства нужно в нём запустить консоль сочетанием Alt+F1 (вернуться в GUI-режим можно сочетанием Alt+F7). В консоли набираем команду:

На экране появится примерно такой вывод:




Нам нужно значение IP-адреса интерфейса eth0, через который работает наше устройство в виртуальной машине.

6. Подключение виртуального Android-устройства

В терминале Ubuntu переходим в директорию установки Android SDK, раздел инструментов, в моём примере это /opt/android-sdk-linux/platform-tools/:

Cd /opt/android-sdk-linux/platform-tools/

Остановим adb, этого делать не обязательно, но в некоторых случаях необходимо:

./adb kill-server

Подключим виртуальное устройство по IP-адресу, который мы недавно узнали, указав порт 5555:

./adb connect 192.168.1.65:5555

Вывод в терминале будет примерно такой:




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

7. Запуск приложений в эмуляторе VirtualBox

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




После подтверждения, на экране устройства появится запрос на установку приложений из нового источника:




Теперь можно работать с устройствами VirtualBox в Android Studio.

8. Использование реального Bluetooth-устройства через эмулятор VirtualBox

Задача крайне актуальна для разработчиков под Android, которые разрабатывают приложения для связи по Bluetooth. Чтобы не покупать второе Android-устройство, можно обойтись его виртуальным заменителем.

Чтобы эмулятор имел доступ к Bluetooth-адаптеру, встроенному или внешнему, нужно в настройках виртуальной машины добавить нужное устройство в список доступных, это делается на вкладке настроек «USB»:




После нажатия на иконку добавления устройства (со знаком «+»), на экране появится список доступных устройств, как правило это видеокамера, адаптер bluetooth и wi-fi, кардридер и т.п.

Если никакого списка устройств не появилось, то, скорее всего, текущий пользователь системы не состоит в группе vboxusers. Как это исправить описано в первом пункте в начале статьи.

Выбираем нужное устройство и запускаем виртуальную машину.




В настройках доступен интерфейс Bluetooth.