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

  • Автоквест

    Подозреваю, что существует мало людей, которые бы не слышали когда-нить о странном мероприятии, под названием автоквест. Ну это то, где странные люди гоняют ночью по городу и что-то там ищут. Так вот, в субботу я на такое мероприятие попал. Очень понравилось! Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share…

  • ipod

    Прибыл утром на почту, забрал вожделенную бандероль, которой оказался большой бумажный пакет с надписью used ipod. Доехал до работы, распаковал – действительно, внутри лежит ipod photo 60 gb, который я и заказывал, в комплекте кабель подключения и наушники. Все как обещал продавец. Включил – работает 🙂 Обошлось это счастье мне в 98.5 фунтов английских, или…

  • Direct sound

    Мое серьезное знакомство с майкрософтом началось с дотнета. Я офигел насколько круто и удобно они сделали платформу, как легко и быстро все делается, в общем я понял, что мсовцы переродились. Но вот мне понадобилось вместо OpenAL писать под чистый DirectSound, я офигел 🙂 Целый день потрачен на то, чтобы банально загрузить звук в буфер и…

  • Удаление камней

    Сегодня добрый доктор-стоматолог предложила мне милую услугу – удалить камни. Мля, я до сих пор дрожу от этого ацкого ультразвука, которым она их удаляла. Ацкая штука в виде ручки с проводом при контакте с зубом вызывала скрежет в голове и кучу не очень приятных ощущений. Надеюсь я не зря сделал эту ужасную процедуру 🙂 Сказали,…

  • Старкрафт

    Сегодня играл на чемпе по старкрафту, УСЛ – Лига ньюбов – было интересно, теперь лига делится на две подлиги в квалификационной партии – кто выиграл – тот идет в верхнюю часть, кто проиграл – в нижнюю. Играть стало интереснее, поскольку соперники теперь на уровне – тебя не выносят в первые 3 минуты игры 🙂 Короче…