- Ставим Google Play Store на виртуальный девайс с Jelly Bean (API 16)
- Установка приложений Google в эмулятор Android
- Подготовка
- Создание эмулятора
- Подготовка к установке пакетов
- Установка необходимых пакетов
- Создание нового образа системы
- Первый запуск
- Что делать, если под рукой нет Android-устройства? Обзор Android-эмуляторов
- Введение
- Эмулятор в составе SDK
- Genymotion
- Android x86
- Bluestacks
- Installing Google Play on Android Emulator
- The problem
- First attempts
- New Hope
- Conclusion
- Install Google Play Store in an Android Emulator
- Let’s begin
Ставим Google Play Store на виртуальный девайс с Jelly Bean (API 16)
Меня всегда смущали циркулирующие по интернетам способы установки маркета: что-то откуда-то качать, запускать какие-то скрипты. Всё можно сделать гораздо проще и безопаснее.
Сразу предупрежу, что на API 15 описанный способ не работает, там маркет приложения не скачивает, хотя и ставится.
Сначала краткое описание процедуры:
- создаём виртуальный девайс на основе Google API образа;
- запускаем эмулятор девайса шаманским образом;
- удаляем «лишние» пакеты;
- достаём пакет с маркетом из имеющегося телефона через USB-кабель;
- закачиваем пакет с маркетом;
- финальное шаманство.
Все происходит в линуксе, но в других операционках всё абсолютно так же.
Для начала нужно обновить SDK Tools и Platform Tools до последней версии, чтобы в списке доступных платформ появились образы с API 16.
Создаём виртуальный девайс на основе Google API
Выбираем в поле Target значение Google APIs (Google Inc.) — API Level 16. В секцию Hardware набиваем нужные элементы.
Зачем на основе Google API? А всё просто — в этом образе уже есть нужные для работы Play Store пакеты (google services framework, например) и их не нужно где-то искать и шаманскими путями устанавливать.
Запускаем эмулятор девайса шаманским образом
/android/android-sdk-linux ; виртуалка называется test-4.1 )
Эта команда запускает виртуальный девайс, у которого размер системного раздела увеличен до 250 МБ, если этого не делать, то пустого места на разделе совсем не будет.
Теперь перемонтируем системный раздел для записи и заодно убеждаемся, что перемонтировался:
Я везде использую аргумент -e при вызове adb для того, чтобы запросы шли сразу на эмулируемый девайс.
Удаляем «лишние» пакеты
По умолчанию на виртуальном девайсе находится несколько несколько вредных пакетов, мешающих нормальной работе, в данном случае это LicenseChecker.apk и SdkSetup.apk , удалим их:
Достаём пакет с маркетом из имеющегося телефона через USB-кабель
Теперь нужно достать пакет с маркетом, для этого сгодится любой android-телефон, где этот маркет установлен. Включаем на телефоне отладку через USB, подключаем телефон кабелем к компьютеру и начинаем шаманство. Сначала нужно найти, где находится пакет с маркетом, это просто:
Вот он, родимый: /data/app/com.android.vending-1.apk . Выкачиваем его в текущий каталог (ключ -d используется для обозначения реального устройства, а не эмулятора, это удобно, не нужно id-девайса указывать при каждом вызове):
Этот способ должен работать на любом, даже не рутованном телефоне. И, да, таким путём можно извлекать любые пакеты с телефона.
Закачиваем пакет с маркетом
Закачиваем apk-пакет на телефон:
Финальное шаманство
Пакет на виртуальный девайс залит, осталось теперь сделать так, чтобы при следующем запуске он не слетел. Это тоже просто: эмулятор создаёт копию системного раздела в каталоге с временными файлами при каждом запуске:
Вот он, в файлике emulator-dHRHv0 (у вас он по-другому будет называться, но лежать в этом же каталоге), просто скопируем его в каталог виртуального девайса под именем system.img :
Теперь девайс прибиваем и запускаем обычным образом:
Источник
Установка приложений Google в эмулятор Android
В этой статье описано как установить дополнительные программы (в частности, 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.
Подготовка к установке пакетов
Запустить эмулятор с увеличенным системным разделом
Перемонтировать системный раздел для записи (спасибо за лёгкий способ перемонтирования ArtRoman):
Удалить пакет от SDK, который при загрузке эмулятора возвращает все настройки к дефолтным:
Войти в шелл:
Установка необходимых пакетов
Извлечь приложения из архива с Google Apps (папка system\app).
Установить пакеты:
Подобным образом устанавить дополнительные приложения (например, Calendar.apk и CalendarProvider.apk).
Создание нового образа системы
Загрузить в эмулятор утилиту создания образа:
Дать права на запуск этой утилиты
Проверить, что все пакеты попали в /system/app:
Сделать образ системы на SD карту
Теперь придётся набраться терпения, и слить полученный образ «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.
Первый запуск
Нас встречает робот
Меняем язык на русский
Войти под аккаунтом Google из этого мастера настроек у меня не получилось. Не смог выдвинуть клавиатуру :).
В итоге пришлось настраивать синхронизацию позже
Источник
Что делать, если под рукой нет Android-устройства? Обзор Android-эмуляторов
Введение
Часто бывает необходимость проверить работу свеженаписанного приложения на устройстве. Но вполне может оказаться, что устройства под рукой нет. Или нет устройства с определенными параметрами (правда, это больше относится к размеру/разрешению экрана). Что же делать в этом случае?
К счастью, альтернативы есть. Android-сообщество и разные компании предлагают на выбор несколько вариантов замены android-устройств для разных целей.
Я кратко расскажу о следующих:
- Эмулятор в составе SDK
- Genymotion
- Android x86
- Bluestacks
Если интересно — добро пожаловать под кат (осторожно, достаточно много картинок)
Эмулятор в составе SDK
Сайт: http://developer.android.com/sdk/index.html
Самый очевидный способ подмены устройства. Если занимаешься разработкой под Android — эмулятор точно есть.
Использование
Плюсы
Минусы
- Медленный, если не использовать HAXM
- Не ARM, если использовать HAXM
- Нет эмуляции Bluetooth, OTG, наушников и некоторых других железных параметров
Genymotion
Сайт: http://www.genymotion.com/
Проприетарная реализация, выросшая из проекта AndroVM.
По сути, виртуальная машина на VirtualBox с дополнительными фишками вроде своих контролов, расширенной настройки и т.д.
Достаточно удобен, быстр, много возможность, коммандлайн тулы, Java API для тестов.
При создании устройства из сети выкачивается его образ.
APK можно устанавливать, перетянув их на окно с виртуалкой.
Плюсы
Минусы
- Платный для компаний, и это главный минус
- Не ARM
- Достаточно долгий выход актуальных версий Android
Android x86
Сайт: http://www.android-x86.org/
Проект по портированию Android на платформу x86. Распространяется в виде образа iso, можно запустить/установить в виртуальной машине, при большом желании можно даже поставить на живую машину с x86 процессором (на ноутбук, например).
Работает быстро, но есть куча проблем из-за того, что это виртуальная машина. Например, привязывние мыши внутри окна виртуалки, доступ к adb только по сети и т.д.
Для использования в VirtualBox нужно отключать Mouse Integration, иначе в виртуальной машине не видно курсора.
Для подключения adb нужно выполнить
IP-адрес можно узнать, нажав в машине Alt+F1 и введя netcfg. Вернуться в графический режим — Alt+F7.
Плюсы
Минусы
- Неудобный доступ к adb
- Минусы, связанные с использованием VM — привязка мыши, например
- Не ARM
- Очень долгий выход актуальных версий
Bluestacks
Сайт: www.bluestacks.com
Позиционируется как плеер приложений для Windows, Mac и TV. Умеет запускать приложения, имеет доступ к маркету. Неудобен для разработки и тестирования — apk ставятся тулом из комплекта, но доступ к adb можно получить. Однако для запуска приложений может быть полезен.
Для подключения через adb:
Плюсы
Минусы
- Неудобно ставить приложения
- Непонятно, что с версиями android (2.3 под OS X, под Windows ставился 4.0)
- Нет под linux
Источник
Installing Google Play on Android Emulator
Posted by: Piotr Buda in Android Core May 15th, 2013 1 Comment Views
The problem
I wanted to install Google Play on emulator. Problem is no guide on the net could tell me precisely how to do this. I’m not sure why, it seemed that they worked with old Android Market (pre version 3 era) or at least people shown some screenshots of that but I couldn’t make it work at home. The difference was that I tried to install Google Play on an Ice Cream Sandwitch emulator (API level 15) and it always failed.
First attempts
I first found this site. I tried setting up everything from there but I just couldn’t make it work. Possible because their Vending.apk couldn’t start, I have no clue. Then I found this site and I somehow managed to install Vending.apk on emulator using this guide, but I couldn’t reproduce that.
One of the problems with those guides (which made me spend a lot of time on something useless) was that both these guides made me delete two files from AVD: cache.img and userdata-qemu.img. Why? Apparently when you wanted to restart emulator, these files were responsible for reinitialization of emulator to it’s starting state (like full wipe/factory reset). I tried and tried and I always ended up without my changes.
New Hope
After that I found that there is a snapshot option in AVD configuration window so I just checked it and finally I was able to see last state of emulator. Maybe it’s not perfect – it works like hibernation on your laptop – but it works and after a whole day of fight it was enough.
I then though why do I install some obsolete Vending.apk and GoogleServicesFramework.apk? Why can’t I have a new one there? So I connected my phone and pulled those apks from it. Of course it didn’t work, but I was not sure why. But I remembered something – CyanogenMod has Google apps packed in a zip (UPDATE: CyanogenMod does no longer host Google Apps, but you can find them here! So I downloaded their package and extracted everything I needed – Vending.apk and GoogleServicesFramework.apk. But it was not enough.
So I had an AVD set up with snapshots enabled and I proceeded to installing my new apks – full script will be posted at the end.
- You have to remount system partition in read-write mode.
- Then it’s necessary to allow writing to /system/app directory
- After that is done just push apks to /system/app/. (notice the dot at the end)
- Just for the sake of other guides I also remove /system/app/SdkSetup* (both apk and odex)
Voila! Google Play is installed on emulator! But it still doesn’t work. In order for it to start working, you need an account – Google account. This step also cost me some time. My AVD was based on Android 4.0.3, not the Google APIs one. So I changed it and… still nothing.
Apparently in recent releases Google decided to decouple their account provider from the OS so they have a separate apk that allows configuration of Google accounts – it’s called GoogleLoginService.apk. Pushing this to emulator solved all the problems – you don’t even need Google APIs (you can set up against Android 4.0.3 option). Now when you enter Play Store you get prompted for an account and it works!
Conclusion
After two days of trying I finally was able to launch and browse Google Play Store on an Android emulator with Ice Cream Sandwitch. Phew.
Command I use to start my emulator
That script will work as long as you run it from a dir in which you have all the necessary apks. Of course you have to have your PATH environment variable set correctly (so that all those commands are actually accessible) but I suppose you know that already.
Источник
Install Google Play Store in an Android Emulator
Recently I was testing some Google Play Store related functionality in different emulators and I realised that it is a bit tricky to install Google Play in some emulators.
It is easy to install Google Play Store for API 24 and above as we can directly select an emulator that has Google Play from the AVD manager.
For emulators using API 23 and below it becomes a bit tricky as we cannot directly install an emulator from Android Studio that has Google Play installed.
In this blog post, we will see how we can install Google Play in those emulators.
Let’s begin
We need to download the required packages to install Google Play in the emulator based on our specifications from this site.
We can specify the CPU architecture and Android version of our emulator before we download the zip file.
After you decompress the zip file, you need to open the Core folder. The files that we need are highlighted in the screenshot.
You will notice that the files have tar.lz extension, to decompress them you can cd into the Core folder and use the following command to decompress the required files. You may need to install lzip to do that.
These are the four folders that we require to install Google Play. Each of these folders has one APK in them. Based on the configurations of your emulator you may or may not require all of them.
We can check that right now. Let’s enter the adb shell and check for the privileged apps directory using the following commands.
As you can see in the screenshot above I already have APKs related to Google services installed in my emulator so I only need to install one APK that is inside the vending-x86 folder with the name Phonesky.apk .
Press Ctrl+D to exit the adb shell 😉
Now we just have to push this APK to our emulator and we are done.
We need to use the following command to start our emulator.
We provide the name of our emulator and this command will open the emulator in a writable environment. Otherwise, the next command will fail.
This command will make /system partition of your emulator writable(By default it is readable). Now we can push the APK to the emulator using the following command.
We provide the path to our APK and this command will copy it to /system/priv-app/ directory in the emulator.
Next we need to restart our emulator. We can use the following commands to do that.
Now, as soon as your emulator restarts you should be able to see the Google Play Store icon in the apps drawer. You can use it to download apps in the emulator or test any other functionality that you require.
I hope you were able to follow all the commands mentioned in this article if you faced any difficulties feel free to reach out to me.
Thanks for reading! If you enjoyed this story, please click the 👏 button and share it to help others!
If you have any kind of feedback, feel free to connect with me on Twitter .
Источник