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

  • Авто

    Начинаешь немного иначе смотреть на дорогу и стиль вождения после того как ты еле успеваешь затормозить перед едущей впереди машиной и думаешь “вуух… пронесло…” и внезапно видишь в зеркале заднего вида машину, которая не успела затормозить и врезается в стоящий за тобой биммер… Этот стук нельзя спутать ни с чем… В общем надо ездить аккуратно…

  • iGo

    Новая карта Украины для iGo (от 15 марта с.г.) поправилась ещё на 10 метров и уже занимает 52 МБ. Для сравнения – Италия тянет где-то на 180. В принципе, если так и дальше будут продолжать, то к евро 2012 у нас будет очень даже хорошее картографическое покрытие (уже сейчас радует). Share this post: Share on…

  • Гурт Йогурт

    Ходили вчера нашим дружным рабочим коллективом + ddima, который находится у нас с дружеско-рабочим визитом, в ирландский паб “to dublin”. Подают там ирландское пиво, в том числе и “Гиннес”, но мы то туда пошли совсем не за этим 🙂 Вчера там выступал “Гурт Йогурт” (группа Йогурт) – ребята, старые друзья Квакса (майн директор), которые играют…