Android x86 emulator и google maps/play services

Google и intel сделали крутую штуку – образы андроида для x86 atom, которые работают весьма шустро на x86 платформе, в отличие от тормозных armv7. Но счастье резко заканчивается, когда нужно делать приложение, использующее google apis (maps, play services) – x86 образы есть только для чистого андроида.

Тем не менее, гугол (который поиск) помогает решить эту проблему – мы модифицируем образ в эмуляторе.

1. Устанавливаем библиотеку для google maps

Для этого надо её сначала выдрать из образа armv7, поэтому создаём эмулятор для платформы Google APIs – API Level 18, включаем его и выдираем нужные либы:


adb pull /system/etc/permissions/com.google.android.maps.xml
adb pull /system/framework/com.google.android.maps.jar

После этого мы перешиваем образ системного раздела x86 эмулятора (данная магия может применяться и для других задач в будущем)

Запускаем уже x86 (Android 4.3) эмулятор из командной строки с увеличенным разделом и пишем в него выдранные либы


emulator -avd 4.3x86 -partition-size 512
adb remount
adb push com.google.android.maps.xml /system/etc/permissions
adb push com.google.android.maps.jar /system/framework

Теперь нам нужно сохранить образ системного раздела. В интернетах советуют использовать mkfs.yaffs2.x86 и шаманить с ним, но есть значительно более простой способ. Во время работы эмулятора образ системного раздела доступен в хост системе (т.е. той, на которой запущен эмулятор) по адресу C:\Users\[%USER_NAME%]\AppData\Local\Temp\AndroidEmulator\[randomname].tmp (для всяких линупсов и осх поиск файла значительно проще -> /tmp/system.img)

Файл там лежит с нулевым размером, но это не мешает его просто взять, и скопировать в каталог нашего x86 эмулятора под именем system.img

Теперь после ребута эмулятора эти либы будут в нём лежать, как будто так и должно быть.

2. Устанавливаем google play apis

Выкачиваем com.google.android.gms_20130908.apk

и com.android.vending_20130908.apk

Инсталлируем в x86 эмулятор:

adb install com.android.vending-20130716.apk 
adb install com.google.android.gms-20130716.apk 

Вуаля, готово.

Порядок установки лучше соблюдать, иначе библиотека от maps не будет подхватываться и инсталлятор будет ругаться про не найденную shared library.

Similar Posts

  • Rollin again

    Был на открытии роллерского сезона, который проходил в НВЦ (экс ВДНХ). Прикольно было, однако. Собралась огромная туча роллеров, показывали слалом, раздавали тортики и катались паравозиком – это так здорово, оказывается 🙂 Вообще нагонялись по самое не могу, мои нонейм-китайские ролики уже начали разваливаться, похоже, что переход на более правильные состоится чуть раньше, чем я планировал….

  • Прошедшая неделя

    Summary: -Приехали из карпат. Ездили паравозом, большой сборной компанией (человек 60), состоявшей из представителей тростян-кома, сноуборд-ком-уа, мицу-клуба и представителей фирмы элан, в Ивано-Франковск, оттуда в Ясиня из которых на мегатранспорте ГАЗ-66 поднялись на Драгобрат, где тестировали новую коллекцию элановских лыж. После этого я понял, что катаюсь на дровах 🙂 Вечером завалило снегом, на следующее утро…

  • Цивилизация, как мировое зло

    Пришел с работы в прекрасном расположении духа, посидел, поговорил с родителями, а после этого сделал огромную ошибку – сел поиграть часок в цивилизацию. Еле закончил в половине четвертого, при помощи невероятного усилия силы воли. Лег спать, а с утра (в 11 часов), как только проснулся, сразу сел опять играть, такое ощущение, будто я какой-то наркоман,…

  • Квейк 4

    Игрушка мне понравилась, прикольная и динамичная – именно то, что надо для того чтобы снять лишнее напряжение (ну пиво не считаем) Бегаем, крушим монстров, классные спецэффекты, напрягает только попытка мозга все время понять как они работают и как их спереть и сделать у себя 🙂 А потом я начал копаться в ресурсах игры. ЭТО ПЕСТЕТС!…

  • Кругом война, а я на работе :)

    Сегодня на работу приехали американские белые люди, которым очень хотелось увидеть в наших лицах клоунов, обезьян и прочих акробатов, почему-то это настолько важно, что меня даже выдернули с военки. В принципе через некоторое время я даже стал рад – у меня опять все начало работать и получаться и я даже настроил Lotus Notes – при…

  • Скриптование

    Сегодня я начал прикручивать к движку механизм скриптов (Lua+Luabind) просто подключение и вывод в лог hello world прошел на удивление безоблачно 🙂 Проблемы начались, когда я начал подкручивать экспорт/импорт классов из движка в скрипты, почему-то напрочь отказались работать пропертисы, двиг вываливается на ассертах, пришлось оставить старые добрые геттеры и сеттеры. В принципе после многих часов…