Запуск приложений ARM на x86 virtual Android

Задача: запустить любимую игрушку или полезное приложение Android на компьютере под управлением linux. Первый шаг - это запустить хоть сам голый Android на компьютере внутри базовой операционной системы.Для этой цели есть несколько вариантов решения. Можно использовать стандартный эмулятор Android для разработчиков от Google, - запустить любую версию Android. Можно использовать Anbox с его Android 7.1. Фишка Anbox в том, что будет максимально задействовано родное железо без лишних слоёв эмуляции. Третий вариант, который я тут приведу - Genymotion - платный проект виртуализации, в котором можно получить бесплатную лицензию для домашнего использования. В общем, выбрать есть из чего.

Где взять программу для установки

Какой бы проект вы не установили, потребуется найти установочный пакет интересуемого приложения или же установить менеджер приложений (самый популярный вариант - Google App и Google Play services в придачу к нему).

Начнём с самого простого случая. Вариантов будет несколько - зависит от того, как постарались разработчики приложения, которое вам нужно. Сначала надо попробовать скачать нужное приложение в виде apk-пакета (установочный пакет Android). Этом можно сделать, например, через расширение браузера "APK Downloader для Google Play Store" - тут есть поисковая строка; в результатах поиска будут разные варианты пакетов, который можно скачать. Например, ищем "angrybirds", получаем кучу приложений.

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


 На странице приложений зачастую видим несколько вариантов пакетов для скачивания. Ищем, под какую архитектуру есть пакеты. Если есть под x86 или универсальный пакет (как на снимке ниже) - считайте вам очень повезло и не придётся продираться в дебри.

Установка Google play и прочее от Google

Если ваша игра или нужное приложение жёстко привязано к каким-то сервисам гугла и без них никак не будет работать, - вам не поможет наличие установочного пакета из предыдущего пункта. Придётся устанавливать также сервисы гугла. Взять установочный пакеты сервисов гугла (разной величины наборами) можно в проекте Open gapps. Для Anbox вам нужно будет выбрать нужной величины пакет среди x86/7.1; для Genymotion - тоже x86 но уже под нужную версию Android (в Genymotion вы можете установить разные версии Android). Для многих игр нужен вариант mini - в него входит Google Play services. По мои наблюдениям, иногда надо закачать и перепробовать несколько разных наборов с сервисами гугла, чтобы найти подходящий рабочий вариант для заданного приложения. Неизменным остаётся только одно - архитектура x86 (для Anbox и Genymotion).

Запуск ARM пакета на x86

Проекты Anbox и Genymotion так устроены, что запускают эмуляцию Android на архитектуре x86. Проблема в том, что многие игры или приложения разработчики (специально или из лени) не делают под эту архитектуру, а только под ARM (различных вариаций). Например, игра "Empires & Puzzles" есть только под arm64-v8a и armeabi-v7a. Но это не повод сдаваться. Запустить на компьютере можно даже эту игру. Потребуется ещё один вспомогательный пакет для проекта Genymotion - Genymotion_ARM_Translation. Тут есть отдельные варианты под разную версию Android, доступны под: 4.3, 4.4, 5.1, 7.X и 8.0. Этот вспомогательный пакет поселится в виртуальном Android и будет транслировать вызовы ARM в x86. Получается не всегда. Потребуется терпение, чтобы бодобрать рабочую комбинацию из:

1) виртуальный девайс в Genymotion

2) пакет Open gapps

3) пакет Genymotion_ARM_Translation

4) пакет игры или приложения

Установка в Genymotion устроена путём перетаскивания файлов с компьюера в запущенный эмулятор. Сначала ставим gapps, потом конвертер в x86, а затем нужные приложения.




Комментарии

Популярные сообщения из этого блога

Пропорциональное распределение суммы

Битрикс: своя геолокация

Bitrix24 API - разбор демо приложения третьего типа