В этой статье описано как установить дополнительные программы (в частности, Google Apps) в эмулятор Android. Это может понадобиться если вы хотите на эмуляторе:
1. Настроить синхронизацию с аккаунтом Google.
2. Установить календарь и календарь провайдер.
3. Установить Android Market.
4. И прочее…
Несмотря на то, что можно создать эмулятор Android с Google API, в нём отсутствуют такие важные вещи как адаптеры синхронизации контактов, календарей и прочее…
Подготовка
Итак, помимо Android SDK, нам понадобится:
1. Google Apps (в конце, я брал от CyanogenMod 7).
2. Утилита для создания нового образа системы mkfs.yaffs2.arm.
3. Если необходимо иметь полноценную работу с календарём, то добыть Calendar.apk и CalendarProvider.apk. Их можно найти как на просторах Интернет, так и откомпилировать из исходников Android.
Для удобства в системную переменную PATH добавить пути к android-sdk\tools и android-sdk\platform-tools.
Создание эмулятора
Создать эмулятор со следующими параметрами:
Обратить особое внимание!
SD карту создать не менее 200Мб!
Все последующие команды предполагают, что в данный момент активен только один эмулятор. Если у вас запущено несколько эмуляторов/устройств, то к командам с утилитой adb необходимо добавлять параметр -s.
Подготовка к установке пакетов
Запустить эмулятор с увеличенным системным разделом
emulator -avd emulator_2.3.3 -partition-size 150
Перемонтировать системный раздел для записи (спасибо за лёгкий способ перемонтирования ArtRoman):
adb remount
Удалить пакет от SDK, который при загрузке эмулятора возвращает все настройки к дефолтным:
Войти в шелл:
adb shell
rm /system/app/SdkSetup.apk
Выйти из шелла
exit
Установка необходимых пакетов
Извлечь приложения из архива с Google Apps (папка system\app).
Установить пакеты:
adb push CarHomeGoogle.apk /system/app
adb push FOTAKill.apk /system/app
adb push GenieWidget.apk /system/app
adb push GoogleBackupTransport.apk /system/app
adb push GoogleCalendarSyncAdapter.apk /system/app
adb push GoogleContactsSyncAdapter.apk /system/app
adb push GoogleFeedback.apk /system/app
adb push GooglePartnerSetup.apk /system/app
adb push GoogleQuickSearchBox.apk /system/app
adb push GoogleServicesFramework.apk /system/app
adb push LatinImeTutorial.apk /system/app
adb push MarketUpdater.apk /system/app
adb push MediaUploader.apk /system/app
adb push NetworkLocation.apk /system/app
adb push OneTimeInitializer.apk /system/app
adb push SetupWizard.apk /system/app
adb push Talk.apk /system/app
adb push Vending.apk /system/app
Подобным образом устанавить дополнительные приложения (например, Calendar.apk и CalendarProvider.apk).
Создание нового образа системы
Загрузить в эмулятор утилиту создания образа:
adb push mkfs.yaffs2.arm /system/app
Дать права на запуск этой утилиты
adb shell
chmod 777 /system/app/mkfs.yaffs2.arm
Проверить, что все пакеты попали в /system/app:
ls /system/app
Сделать образ системы на SD карту
/system/app/mkfs.yaffs2.arm /system /sdcard/system.img
Выйти из шелла
exit
Теперь придётся набраться терпения, и слить полученный образ «adb pull /sdcard/system.img d:\temp». Скорость примерно 59Кб/с, примерно 25 минут для 100Мб образа.
Закрыть эмулятор.
Из c:\Users\\.android\avd\emulator_2.3.3.avd\ удалить cache.img и userdata-qemu.img (если они есть). Залить в эту папку полученный образ system.img.
Эмулятор готов!
Первый запуск
Запустить эмулятор
emulator -avd emulator_2.3.3
Нас встречает робот
Меняем язык на русский
Войти под аккаунтом Google из этого мастера настроек у меня не получилось. Не смог выдвинуть клавиатуру :).
В итоге пришлось настраивать синхронизацию позже
Заключение
Вот и всё! Всем успехов в разработке!