Android studio как запустить эмулятор

от admin

How To Run Your Apps in Android Studio?

Writing a code is simple. But running a code is what gives life to what you have written.

When I first started out with Android Studio, I was taking a lot of references while building my app. But the thing that kept me excited was the idea of running my app for the first time. However, I had to read some tutorials before getting started, so I thought why not create one on my own.

Android Studio provides two methods to run your apps. You can either run your app on a real device or create an Android Virtual Device (AVD) that the emulator can use to run your app.

In this blog, I will talk about running the app in both ways and some of the issues I encountered during this process.

Creating an AVD for Emulator

The simplest way to run your app is on an emulator. The emulator allows users to run their apps on different Android APIs without needing each physical device. It provides a default API but you can add the device modal and version of your own choice as well.

To run your app on the emulator all you need to do is select the device name from the drop-down list and click the run button.

Adding a New AVD

To add a new AVD device follow these steps:
1. Click on the Available Device option and select AVD manager.
2. In the Android Virtual Device Manager window and click on Create Virtual Device.
3. Select the category and device name and press next. Select the Android version and click on download.
4. Click Next and wait for the download. Then click Finish.

Problem: The Emulator Screen Goes Black

It happened to me a lot during the first few days of using the emulator. When I would run the program it would open to a black screen emulator. I tried everything including restarting the app, refreshing, changing the Internet connection, etc. But it was all in vain.

However, a very simple solution to this problem is to open the AVD manager and click on the rightmost arrow button next to your device name. Click on the option Cold Boot Now and your problem will be solved! Cold Boot refers to starting a device that has been turned off.

Problem: Emulator Fills Up Only Part of the Screen

I am not sure if it is common problem or not. But I was one of those people facing this problem. And when I looked it up online, there were many others facing the same issue. Hence I wanted to cover this topic as well.

To fix this scaling issue you need to make Windows override the scaling settings. For that find the .exe file of your emulator. For me the path was: “C:\Users[Username]\AppData\Local\Android\Sdk\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe”

Click on the Compatibility tab then select the Change High DPI settings. Check the Override high DPI scaling behavior check box and select the System option under Scaling performed by menu. Press OK to apply the changed settings.

Running App on A Physical Device

The best experience of an app can come from running it on your own device. This can be useful to check the network requirements, connectivity and sending out messages and notifications. The emulator can sometimes provide a false impression even if the testing is 100% perfect.

To run your app on your mobile you first need to enter the Developer mode and enable USB debugging.
1. Go to Settings-> About Phone. Then find the Build Number and tap it 6–7 times. A message pops us “You are now a developer”.
2. Go back to Settings and find USB Debugging and enable the developer option.
3. Connect your mobile phone to the laptop using a USB cable. If there are no USB drivers on your PC you can download it.
4. A dialog box appears on your mobile. Check the “Always allow this computer” option and click Allow.
5. Under the run option in your Android Studio, you will be able to see your device name. Select that and click run.

Once done, the app will get downloaded on your mobile phone and you can run and test it out easily.

These are two simple ways to run your apps- on the emulator and mobile phone. It is very important to run the apps for debugging, checking connectivity and testing its functionality. So, I hope that this was a useful guide for the same. I will link some YouTube videos that I found helpful in these topics.

Android Studio для NDK под Windows

На днях я обнаружил, что версия Android Studio неуклонно стремится к единице, в связи с чем задумался об изучении этого инструмента. Чтобы не было скучно, я решил поделиться своим опытом и собранными граблями в виде статьи-туториала.

Сразу хочу оговориться, что я не являюсь гуру Android-разработки, поэтому каких-либо откровений в тексте вы не найдете. Зато тут есть пошаговая инструкция по установке и настройке Android Studio под Windows и созданию простейшего проекта с использованием Android NDK.

Также заранее предупреждаю: статья получилась большой и очень подробной (честно, сам не ожидал), даже несмотря на то, что я почти все скриншоты и некоторые листинги кода спрятал под спойлеры.

На момент написания последней версией Android Studio была 0.8.1, для последующих версий необходимые действия могут отличаться от нижеописанных (очень надеюсь, что в лучшую сторону).

Установка и настройка Android Studio
1. Необходимо установить JDK (Java Development Kit) и JRE (Java Runtime Environment).

Раньше Android SDK поддерживал только JDK версии 6, но теперь это в прошлом. Поддерживается 7 и даже 8 (по крайней мере, именно 8-ю версию я указал в качестве JAVA_HOME и в настройках Android Studio, и никаких проблем не испытал).
JRE же нужен для запуска самой студии. У меня она использует версию 7.
Скачать JDK и JRE версий больше 6 можно с сайта Oracle.

  • Зайти в Панель управления\Система и безопасность\Система, выбрать слева Дополнительные параметры системы, в открывшемся диалоге найти кнопку Переменные среды.
  • Создать системную или пользовательскую переменную JAVA_HOME и указать для нее путь к JDK. У меня указан вот такой путь: C:\Program Files\Java\jdk1.8.0_05.
  • Скачать Java EE 6 с сайта Oracle.
  • Установить его. В комплекте есть JDK 6.
  • В качестве JAVA_HOME в этом случае нужно указать путь к JDK из Java EE, по умолчанию это C:/glassfish3/jdk.
2. Если у вас установлен Android SDK.

В комплекте с Android Studio идет свой Android SDK. И, если вы хотите использовать именно его, то в некоторых случаях может случиться странное. Например, у меня при обновлении SDK через SDK Manager часть файлов записывалась в старую папку, и возникли проблемы, когда я эту папку удалил. Скорее всего это произошло из-за того, что в реестре хранился ключ с путем к старой папке. Поэтому имеет смысл почистить реестр. Для этого нужно запустить regedit.exe и найти HKEY_LOCAL_MACHINE\Software\Android SDK Tools для 32-битных машин либо HKEY_LOCAL_MACHINE\Software\Wow6432Node\Android SDK Tools для 64-битных машин и удалить Android SDK Tools. Если в реестре вашей системы таких ключей нет, то все в порядке.

Если у вас установлена переменная среды ANDROID_SDK_HOME и вы хотите, чтобы она указывала на старую установку, то, по идее, это не должно стать проблемой, так как при настройке Android Studio мы укажем ей путь к SDK. Проблемы могут возникнуть, если эту переменную использует какое-либо из приложений, входящих в состав Android SDK.

3. Теперь переходим к установке Android Studio.

Нужно скачать Android Studio для вашей системы с официальной страницы и установить ее. По умолчанию, если выбрать «Установить только для меня» ставится в \Users\<user>\AppData\Local\Android\android-studio\, иначе ставится в \Program FIles (x86)\Android\android-studio\. Можно выбрать и другую папку.

После установки запускаем Android Studio.

  • Проверяем обновления и, при необходимости, обновляемся (для этого нажмите на Check в нижней части окна)
  • Заходим в Configure->SDK Manager (на всякий случай: SDK Manager — это не часть Android Studio, а утилита из Android SDK) и устанавливаем то, что вам необходимо. Если вы не знаете, что необходимо, то лучше установить все, что он предложит.


нужно зайти в Configure->Settings->Appearance:

Создание проекта
1. New Project

  • Имя проекта (я оставил по умолчанию: My Application)
  • Домен компании, по умолчанию <username>.example.com, в моем случае markedone.example.com
  • Имя пакета тоже можно отредактировать, нажав на Edit справа. По умолчанию генерируется из имени проекта и домена компании и выглядит как com.example.<username>.<имя проекта в lowercase без пробелов&gt, я его изменил на com.example.markedone.myapp.
  • Путь, куда будет сохранен проект. Я указал свою папку для всяких тестовых проектов.
2. Form Factors

Здесь я все оставил по умолчанию: Phone and Tablet и 4.0.3 IceCreamSandwich. Если API для каких-то платформ не установлен, выдается сообщение Not Insatlled. Например, как видно на скриншоте, у меня не установлены библиотеки для Google Glass (сделать это можно через SDK Manager).

Если нажать Help me choose, то откроется вот такой интересный диалог

Он содержит информацию по охвату устройств при выборе той или иной версии API. Прямоугольники версий API кликабельны, справа будет выведен список доступного в них функционала. Например, для предлагаемого по умолчанию Ice Cream Sandwich’а:

3. Add Activity

  • Activity Name — имя класса, я оставил по умолчанию: FullscreenActivity.
  • Layout Name — имя layout, для редактора UI, также оставляем по умолчанию.
  • Title — по умолчанию предлагается FullscreenActivity, я поставил пробел: Fullscreen Activity.

Сборка и запуск
1. Сборка проекта

Запускаем сборку через меню: Build->Make Project (для пунктов меню указаны иконки и горячие клавиши, так что с ними будет несложно разобраться).
У меня при первой сборке возникла ошибка:

Произошло это в файле MyApplication/app/build.gradle
Для того, чтобы понять в чем дело, достаточно навести курсор на подчеркнутую строку:

Все просто, здесь указана версия 19, а у нас установлена только 20, да и в настройках проекта мы указали 20 как целевую. Просто поменяем цифру:

Как видно, студия на этом не успокоилась, и предлагает установить еще более новую версию. Но нам сейчас это не нужно.

Снова запускаем Build->Make Project. На этот раз у меня все собралось. Надеюсь, у вас тоже.

2. Настройка виртуального устройства

  • AVD Name — имя виртуального устройства, я ввел TestPhone. Дальше я, правда, выбрал планшет, но уже не стал менять название.
  • Device — различные предустановленные настройки устройства, значение выбирается из доступных в выпадающем списке, я выбрал 7» WSVGA (Tablet) (1024 x 600: mdpi).
  • Target — целевая версия API, доступны только те, которые есть в SDK. Установить их можно через SDK Manager.

    W в названии означает Wear, версия для носимых устройств (часы и прочее). Так как мы в настройках проекта выбирали Tablet&Phone, то нам нужен другой пункт: Android L (Preview) — API Level L.
  • CPU/ABI — платформа, я выбрал ARM (armeabi-v7a).
  • Keyboard — тут, думаю, все понятно.
  • Skin — как я понял, внешний вид устройства, я выбрал значение, соответствующее установленному значению Device: WSVGA.
  • Front Camera и Back Camera — наличие камер.
  • Memory Options — оперативная память.
  • Internal Storage — жесткий диск устройства.
  • SD Card — думаю, понятно.
  • Emulation options: Snapshot — позволяет эмулятору сохранять свое состояние между запусками, Use Host GPU — позволяет использовать видеокарту компьютера для OpenGL ES. Последнюю опцию я включил, но OpenGL — приложение у меня впоследствии упало на этом эмуляторе при старте. Наверное, из-за ARM vs x86_64.


На ней заданы доступные устройства (те, которые потом отображаются в выпадающем списке Device при создании нового виртуального устройства). Чтобы создать новое устройство, нужно нажать на кнопку Create Device. и озаботиться заполнением следующего диалога:

Закрываем AVD Manager и возвращаемся в главное окно Android Studio.

3. Запуск на эмуляторе

Здесь единственный доступный вариант для выбора — это наше виртуальное устройство. Он нам сразу предложен, так что просто жмем OK.

Здесь устройство перекочевало из списка для запуска в список уже запущенных. В этом списке, само собой, оказываются и реальные устройства.

После этого дело пошло, и приложение довольно быстро установилось и запустилось.

4. Запуск в Debug-режиме

Ждем, пока запустится приложение и приконнектится дебаггер. Я поставил точку останова при нажатии на кнопку Dummy Button.

5. Запуск на 4.0.3

5. Запуск на устройстве

Первое, что нужно сделать, это установить adb-драйвер. У меня с этим все довольно просто, драйвер находится прямо на телефоне, единственное, что нужно сделать, это воткнуть шнур в компьютер, зайти в примонтировавшийся диск и запустить исполняемый файл, который и установит adb-драйвер. Для других устройств все может быть сложнее. Например, для планшета Prestigio мне в свое время пришлось прописывать Vendor ID в специальный файл (чтобы использовался стандартный драйвер от Google), для Samsung нужен их собственный Kies, был отдельный драйвер для HTC и так далее. В общем, вам придется самостоятельно разобраться, как установить драйвер для вашего устройства.

После того как драйвер был установлен, нужно на устройстве разрешить отладку по USB. У меня на телефоне для этого нужно зайти в Настройки->Для разработчиков->Отладка по USB. Но для разных устройств, а также сборок и версий Android, расположение этого пункта меню может отличаться.

Теперь телефон будет находиться Android SDK, а разрабатываемые приложения будут устанавливаться. Однако, для Huawei это еще не все: с телефона не идут логи, нужно их включить.

  • На полный экран
  • После нажатия
  • На полный экран
  • После нажатия
Установка и настройка Android NDK
1. Установка NDK

Android SDK, как мы уже выяснили, входит в комплект Android Studio, а вот NDK — нет. Скачиваем NDK, подходящий для вашей системы, отсюда. Распаковываем архив и кладем в какую-нибудь папку, например, в D:\ndk, так, чтобы файл ndk-build.cmd лежал прямо в ней. Важно: необходимо, чтобы в пути к NDK не было пробелов.

2. Добавим переменную ANDROID_NDK_HOME

Заходим в Панель управления\Система и безопасность\Система, выбираем слева Дополнительные параметры системы, в открывшемся диалоге нажимаем кнопку Переменные среды. Создаем переменную с именем ANDROID_NDK_HOME и значением D:\ndk (путь к вашей NDK).

Альтернативно, вместо указания глобальной переменной можно прописать путь к ndk в файле local.properties вашего проекта (прямо в корневой папке: MyApplication\local.properties). Содержимое файла будет выглядеть примерно так (обратите внимание на двойные бэкслеши, так как для Windows это критично):

Не верьте дисклеймеру про «ваши изменения будут выкинуты», в данном случае это не так. Обратите внимание, что этот файл рекомендуется исключать из-под контроля версий, так как он содержит только локальную для пользователя информацию. Для разнообразия в этом нам не соврали. Ну и, само собой, это изменение никак не повлияет на другие Ваши проекты. При установленной ANDROID_NDK_HOME прописывать путь в local.properties необязательно.

3. Установим необходимую версию Android API

4. Настроим gradle для работы с NDK

Информацию я брал из сэмплов, скачать их можно здесь, в самом низу страницы. Я скачивал сэмплы для версии 0.11. В качестве основного примера я брал ndkSanAngeles.

После того, как сэмплы скачаны, их нужно распаковать. Затем нужно открыть проект ndkSanAngeles. Для Android Studio проектом является папка, так что открывать надо именно ее. Для того этого выполняем File->Open, либо, если вы в Welcome диалоге, Open Project. Ищем папку ndkSanAngeles через диалог открытия файла.

После открытия проекта стоит обратить взор на файл build.gradle. Вот его оригинал:

А вот измененная версия, чтобы проект собирался у меня:

  • О несовпадении версии плагина gradle (classpath ‘com.android.tools.build:gradle:0.11.0’) будет сказано при попытке сборки и предложен правильный номер версии. У меня это 0.12.+.
  • compileSdkVersion 19 остается, так как это максимальная версия для текущего NDK.
  • buildToolsVersion изменился на 20. Установленные версии можно посмотреть в SDK Manager, там же можно установить другие.

Настроим его для работы с NDK, используя в качестве «донора» build.gradle из ndkSanAngeles.

Для начала, заменим
compileSdkVersion 20
на
compileSdkVersion 19
так как NDK ограничен версией 19.

  • moduleName — имя модуля, будет использовано для именования *.so файла
  • cFlags — флаги C
  • ldLibs — библиотеки, которые вы хотите подключить к нативному коду
  • stl — версия библиотеки STL

Теперь добавим productFlavors. Здесь мы указываем, какие собранные *.so библиотеки включать в сборку под конкретную архитектуру. Таким образом, *.apk собранный для arm будет содержать версию библиотеки только для arm, под x86 — для x86 и так далее. Этот кусок полностью скопирован с ndkSanAngeles. Объяснение значений versionCode из комментариев: для x86 ставим максимальное значение versionCode, так как если устройство поддерживает и x86 и arm, то сборка x86 предпочтительнее (видимо, так как у нее большая версия, то установлена будет именно она), а минимальный versionCode прописывается для fat (по идее это должен быть «толстый» *.apk, содержащий сразу все возможные версии библиотек).

«Собираем» значение versionCode для каждого из вариантов сборки:

Наконец, последняя секция, dependencies. Если помните, здесь мы меняли compile ‘com.android.support:support-v4:19.+’ на compile ‘com.android.support:support-v4:20.+’, чтобы собирать с единственной установленной у нас версией библиотеки. Теперь придется поменять обратно на 19.

5. Создаем папку jni



В первом диалоге мы выбираем, для какой части модуля будет создана папка jni, а во втором можно изменить ее расположение.

6. Добавим C++ файлы

  • #pragma once — вместо стандартной (#ifndef/#define/#endif) защиты от повторного включения. Сейчас #pragma once понимается большинством C++ компиляторов.
  • #include <jni.h> — включаем заголовок JNI, чтобы можно было использовать типы, объявленные там.
  • #ifdef __cplusplus . #endif — код внутри будет скомпилирован только в C++ (но не в C).
  • extern «C» < . >— избавляемся от name mangling (что это и почему, хорошо описано тут).
  • JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz); — объявление функции, которую будем реализовывать.
    Разберем это объявление подробнее.
    • JNIEXPORT необходимо для грамотной линковки.
    • JNICALL для правильного соглашения о вызове.
    • jstring — тип возвращаемого значения функции, в данном случае это строка, совместимая со строкой Java.
    • Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI — имя функции, состоит из:
      Java — язык, который вызывает.
      com_example_markedone_myapp — это id приложения (com.example.markedone.myapp).
      FullscreenActivity — имя класса Java, который содержит объявление метода, представляющего нативную функцию.
      stringFromJNI — собственно, имя функции (таким оно будет в Java).
    • JNIEnv* env, jclass clazz — обязательные параметры, передающиеся из Java.
      JNIEnv* env — указатель на объект, представляющий из себя JNI-окружение.
      jclass clazz — класс, которому принадлежит объявление нативного метода в Java. Здесь нужно оговориться, что jclass clazz — это для статического нативного (static native) метода. Для нестатического метода будет нужно писать jobject obj .
    • #include <android/log.h> — подключаем лог, ради которого мы даже добавили библиотеку (ldLibs «log»)
    • #include — для std::string, который мы используем для проверки наличия STL.
      #include «myapp.h» — подключаем наш заголовочный файл.
      JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz) < . >— реализуем функцию, объявленную в «myapp.h».
      std::string tag(«GREETING»); std::string message(«Hello from C++!»); — создаем строки для вывода в лог.
      __android_log_print(ANDROID_LOG_INFO, tag.c_str(), «%s», message.c_str()); — вывод в лог. Обратите внимание, что необходимо указывать 4 параметра: тип сообщения в логе, тэг, формат строки, и, наконец, само сообщение.
      std::string jniMessage(«Hello from JNI!»); — строка, которую мы будем передавать в Java.
      return env->NewStringUTF(jniMessage.c_str()); — возвращаемое значение, при помощи JNIEnv создаем jstring из C-строки. Обратите внимание, что нам не нужна конструкция вида (*env)-> , так как мы пишем на C++, а не на C.
    7. Добавим вызов нативной функции из Java

    Добавим следующий код в класс FullscreenActivity:
    Здесь сначала идет загрузка библиотеки, а затем объявление метода stringFromJNI, который соответствует нашей функции в C++. Обратите внимание, что он объявлен как static (это влияет на то, что (jclass или jobject) будет в качестве второго параметра C++-функции) и native. Реализовывать native-метод не нужно, мы это уже сделали в C++, а остальное за нас сделает JNI.

    Теперь мы, в общем-то, уже можем вызвать нашу функцию. Если вы, как и я, выбрали FullscreenActivity, то у нас есть Dummy Button, который, по сути, ничего не делает. И даже уже есть touch listener, пусть и не самый лучший (он будет вызываться много раз, пока палец на экране), но, чтобы не плодить лишний код, используем его.

    Для начала добавим в список импорта:
    import android.widget.Button;
    чтобы можно было нормально работать с кнопкой.

    Найдем следующий код:

    и добавим несколько строк перед return false .

    • final String message = stringFromJNI(); — получаем строку из C++. Вызов нативного метода — то, ради чего все и затевалось.
    • final Button button = (Button)findViewById(R.id.dummy_button); — находим объект кнопки.
    • final String actualText = button.getText().toString(); — вытаскиваем текущий текст кнопки.
    • if(message.equals(actualText)) — сравниваем строку, полученную из C++, с текстом кнопки.
      • button.setText(«Dummy Button»); — если одинаковы, меняем текст кнопки на Dummy Button.
      • button.setText(message); — если различаются, то меняем на текст, полученный из C++.
      17. Собираем и запускаем проект

      Заключение

      В целом, мне Android Studio понравилась. Интеграция Android SDK выполнена довольно плотно, иногда даже забываешь, что это запускаются отдельные программы. Есть всякие интересные плюшки, такие, как Help me choose. Понравилась новая система сборки — Gradle, — но тут же и недостаток: по ней очень мало информации.

      Также, видно, что поддержка NDK еще сыровата, но прослеживается движение в этом направлении. Очень надеюсь, что они все-таки сделают полноценную поддержку C++-разработки.

      Эмуляторы в Android

      В последнее время эмуляция ОС Android на компьютере стала очень популярной. Пользователям зачастую необязательно знать принципов работы, достаточно просто скачать из Интернета специальный эмулятор с уже установленной ОС на борту и запустить его, благо эмуляторов сейчас существует большое множество. Единственное, что должен учесть пользователь, это то, соответствует ли его компьютер системным требованиям эмулятора.

      Существует много разных причин, по которым люди используют эмуляторы Android. Кто-то играет на эмуляторе в мобильные игры, кто-то пользуется возможностями Android, недоступными на реальном устройстве, а кому-то просто нравится пользоваться мобильными приложениями на своём компьютере. Для разработчиков приложений эмуляторы тоже очень полезны, поскольку позволяют тестировать приложение на разных конфигурациях и отлаживать его работу.

      Главным преимуществом эмулятора при тестировании является то, что он даёт мгновенный доступ к любой версии Android или любому устройству, на котором нужно проверить работу приложения. Кроме того, разработчику не нужно волноваться по поводу того, что эмулятор перестанет корректно работать — в этом случае достаточно будет просто сбросить его до базовых параметров.

      К недостатку такого подхода можно отнести то, что у разработчика нет возможности увидеть, как приложение действительно выглядит на устройстве, например, с AMOLED дисплеем. Также у эмуляторов нет доступа к некоторым аппаратным функциями реальных устройств.

      В этой статье мы рассмотрим, как работать с родным эмулятором от Android Studio, а также рассмотрим несколько сторонних эмуляторов.

      Эмулятор Android Studio

      Эмулятор Android от Google на протяжении этих лет прошёл долгий путь. Когда-то он был проклятием в жизни разработчика, демонстрируя самые главные недостатки среды разработки. Безумно медленный инструмент с огромным нереализованным потенциалом, призванным улучшить жизнь разработчика.

      Но за последние годы Google сильно потрудился над своим эмулятором и превратил его в один из лучших инструментов для разработки: быстрый, гибкий и полезный при тестировании и отладке приложений.

      Эмулятор Android может имитировать работу смартфона, планшета, часов Wear OS и устройств Android TV. Он содержит в себе конфигурации популярных типов устройств и работает быстрее, чем реальное устройство, подключенное по USB.

      С его помощью можно имитировать входящие звонки и сообщения, указывать местоположение, тестировать различные скорости мобильного интернета, повороты экрана и различные датчики, как у реального устройства. Однако не все возможности поддерживаются эмулятором, в частности он не поддерживает следующее:

      • Bluetooth
      • NFC
      • Работу с SD-картой
      • Работу с наушниками
      • USB

      Поэтому если вам нужно протестировать что-то из вышеперечисленного, то придётся воспользоваться реальным устройством, в остальном же эмулятор полностью повторяет функционал.

      Примечание: что касается эмулятора Wear OS, то он не поддерживает кнопку Обзор (Последние приложения), D-pad и датчик отпечатков пальцев.

      Каждый экземпляр эмулятора использует AVD (Android Virtual Device). AVD — это конфигурация, которая определяет характеристики устройства, который нужно эмулировать: форм-фактор, версию Android и различные характеристики. Он содержит следующие компоненты:

      • Профиль устройства
        Профиль устройства определяет характеристики устройства, которое нужно эмулировать. Менеджер AVD содержит в себе несколько предустановленных профилей (такие устройства, как Nexus и Pixel), но также позволяет создавать свои собственные. Кроме того, некоторые профили включают Google Play, такие профили полностью совместимы с CTS и позволяют использовать образы системы с установленным приложением Google Play.
      • Образ системы
        Содержит нужную версию Android. Для полноты тестирования лучше всего создавать AVD для каждой версии Android, которую поддерживает приложение. Некоторые образы системы помечены надписью Google APIs: это означает, что они включают в себя доступ к сервисам Google Play. Если же образы помечены как Google Play, то кроме сервисов Google Play они включают также само приложение Google Play.
      • Область хранения
        AVD имеет специальную область хранения на компьютере. В ней хранятся пользовательские данные, данные устройства, такие как установленные приложения и настройки, а также эмулированная SD-карта. Если есть такая необходимость, с помошью Менеджера AVD можно удалять с эмулятора пользовательские данные, приводя ему к «заводскому» виду.
      • Скин
        Скин нужен для того, чтобы задать устройству внешний вид. Менеджер AVD содержит несколько предустановленных скинов, также имеется возможность использовать сторонние скины.

      Для того, чтобы создать новый AVD, нужно запустить AVD Manager. Для этого нужно в Android Studio в меню выбрать Tools — AVD Manager. Откроется окно менеджера, в котором будет отображаться список созданных эмуляторов.

      Чтобы создать новый эмулятор, нужно нажать на Create Virtual Device в Менеджере AVD. Откроется окно, в котором будет предложено выбрать тип устройства и профиль.

      После того, как будет выбран профиль, нужно нажать на Next для перехода далее. Здесь нужно выбрать, какой образ системы использовать.

      На вкладке Recommended перечислены рекомендуемые образы системы. Другие вкладки содержат более полный список доступных образов. Справа приводится информация о выбранном образе (уровень API, версия).

      Примечание: образы x86 работают на эмуляторе быстрее всего.

      Уровень API важен, поскольку если он будет меньше, чем тот, что указан в манифесте приложения, приложение не будет установлено на этот эмулятор.

      Если образ ранее не был скачан, рядом с названием появится кнопка Download, нажатие на которую начнёт процесс скачивания. Для скачивания образа потребуется доступ к Интернету.

      Чтобы перейти на следующий этап, нужно нажать Next. В новом окне будет предложено изменить дополнительные свойства AVD (название AVD, ориентацию экрана).

      После нажатия на Show Advanced Settings откроются дополнительные настройки, в которых можно изменить следующее:

      • Фронтальную/основную камеру. Вместо эмуляции изображения есть возможность использовать в качестве камеру подключённую вебкамеру.
      • Скорость и качество интернет-соединения.
      • Способ загрузки. Если выбрать Quick Boot, то эмулятор будет сохранять текущее состояние при выключении и загружать его при включении. Cold Boot — холодный старт.
      • Количество выделенной оперативной памяти и места на диске.
      • Включение\отключение внешнего вида эмулятора.
      • Включение\отключение ввода с клавиатуры.

      Важно! Использование Quick Boot может сильно замедлить работу компьютера, если у него будет недостаточно свободной оперативной памяти для загрузки-сохранения данных. В этом случае лучше использовать Cold Boot.

      После того, как AVD будет настроен, останется только нажать Finish. После этого созданный AVD можно будет увидеть в окне Менеджера AVD.

      Если нужно будет изменить настройки AVD, это легко можно сделать, нажав на кнопку Edit рядом с нужным эмулятором в списке Менеджера AVD.

      Чтобы запустить эмулятор, достаточно в Менеджере AVD нажать на кнопку Run.

      Протестировать приложение на эмуляторе можно, нажав на кнопку Run в Android Studio.

      Откроется окно Select Deployment Target, в котором будет предложено выбрать, на каком устройстве нужно запустить приложение.

      После нажатия OK начнётся запуск выбранного эмулятора, если он не до сих пор запущён, либо установка APK на эмулятор.

      Примечание: также установить приложение на эмулятор можно, просто перетащить APK-файл на экран эмулятора.

      Эмулятор Android позволяет тестировать самые разные функции. Их можно настроить, нажав на кнопку Extended Controls в меню рядом с эмулятором.

      Откроется окно с настройками, разбитыми на различные категории. Здесь можно настроить отправку данных, различные свойства устройства и так далее. Рассмотрим некоторые из категорий.

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

      Вкладка Cellular содержит параметры, регулирующие качество связи и мобильного интернета. Например, можно настроить тип сети, выбрав LTE, GPRS или другие варианты, силу сигнала и домашний регион/роуминг.

      На вкладке Battery можно установить уровень заряда батареи и её состояние (заряжается, разряжается и так далее).

      Вкладка Phone позволяет симулировать входящие звонки и смс-сообщения.

      Для того, чтобы отправить входящий вызов, достаточно нажать на кнопку Call device, после чего на эмуляторе появится соответствующее уведомление. При желании можно также задать свой номер телефона.

      Аналогичным образом можно отправить текстовое сообщение, введя текст сообщения в поле SMS Message и нажав Send Message.

      Вкладка Directional pad представляет собой дополнительный набор элементов управления, встроенных в устройство или подключенных внешне, который обеспечивает управление направлением (вверх, вниз, вправо, влево).

      На вкладке Fingerprnt можно симулировать использование датчика отпечатков. На выбор предлагается несколько предустановленных отпечатков пальцев для различных тестов. Чтобы сообщить датчику о том, что пользователь прикладывает палец, нужно нажать на кнопку Touch the sensor.

      Вкладка Virtual sensors отвечает за симуляцию работы различных датчиков, таких как гироскоп, акселерометр и магнитометр.

      С их помощью можно тестировать приложение на предмет изменения положения устройства в пространстве, ориентации или того и другого. Эмулятор имитирует способ реагирования датчиков акселерометра и магнитометра при перемещении или повороте реального устройства.

      Кроме того, на вкладке Additional sensors находятся различные датчики положения и окружения. На этой вкладке можно настроить следующее:

      • Температура окружающей среды
        Имитирует температуру воздуха.
      • Магнитное поле
        Имитирует изменение окружающего магнитного поля, значения указываются в микротеслах (мкТ).
      • Близость
        Определяет расстояние до какого-либо объекта.
      • Свет
        Имитирует изменение уровня освещённости, измеряется в люксах.
      • Давление
        Измеряет давление окружающего воздуха, значения указаны в миллибар.
      • Относительная влажность
        Изменяет собственно относительную влажность окружающей среды.

      Что касается остальных пунктов меню эмулятора, то они вкратце перечислены ниже.

      1. Кнопка включания/выключения экрана. При удерживании включает/выключает устройство.
      2. Кнопка увеличения громкости
      3. Кнопка уменьшения громкости
      4. Поворот экрана налево
      5. Поворот экрана направо
      6. Создание скриншота экрана. По умолчанию, скриншот сохраняется на рабочий стол и имеет название Screenshot_yyyymmdd-hhmmss.png.
      7. Изменяет курсор на лупу. Клик левой кнопкой мыши по экрану увеличивает масштаб на 25%, правой кнопкой мыши — уменьшает. Для возврата из режима нужно повторнго нажать на кнопку.
      8. Возвращает к предыдущему экрану либо закрывает диалоговое окно, меню опций, панель уведомлений или экранную клавиатуру.
      9. Возвращает на домашний экран.
      10. Открывает список недавних приложений.

      Вот всё основное, что можно сказать о том, какие возможности предоставляет встроенный эмулятор Android Studio. Функционал весьма богат и позволяет тестировать самые разные возможности приложений.

      Сторонние эмуляторы

      Genymotion

      Genymotion является одним из самых популярных эмуляторов Android за счёт своего быстродействия и развития разработчиками. Этот проект был развит из AndroidVM и на данный момент обзавёлся большим количеством улучшений.

      Genymotion, аналогично эмулятору Android Studio, обладает большим количеством возможностей. К недостаткам же можно отнести то, что он является платным, для ознакомления на сайте доступна 30-дневная триал-версия. Также стоит отметить, что для работы Genymotion нужно, чтобы на компьютере был установлен Oracle VM VirtualBox.

      Регистрация на сайте, а также скачивание и установка достаточно просты, поэтому здесь не имеет смысла останавливаться. При запуске Genymotion появляется окно с пустым списком эмуляторов.

      Для создания нового эмулятора нужно нажать Add.

      Здесь будет представлен список заготовленных образов и конфигураций устройств. Причём список весьма богат и включает в себя устройства Motorola, Sony, Samsung и другие.

      Когда нужная конфигурация выбрана, нужно нажать Next. На следующем экране будет показана суммарная информация о выбранной конфигурации, а также будет предложено дать название эмулятору.

      После нажатия на Next начнётся скачивание образа выбранной версии Android и создание эмулятора. Как только всё будет завершено, останется только нажать на Finish.

      После создания эмулятор будет отображаться в списке на основном окне.

      Чтобы запустить эмулятор, нужно выбрать нужную конфигурацию и нажать Start. В результате откроется окно с эмулятором и меню управления.

      Как можно видеть, в триал-версии не все особенности поддерживаются, активны только следующие:

      • Battery
        В этом окне можно настраивать уровень заряда, заряжается ли батарея или нет.

        Например, можно выставить низкий заряд батареи, после чего на эмулятор сразу придёт уведомление о низком уровне заряда.
      • GPS
        Здесь можно включить определение местонахождения устройства по геоданным. Можно ввести все координаты (широту, долготу, высоту) и нажать Map, после чего на карте будут показаны введённые координаты. Или наоборот, можно кликнуть по точке на карте и в окне GPS отобразятся координаты этой точки.
      • Camera
        В этом окне можно включить симуляцию камеры. При этом можно выбрать, что использовать для отображения камеры. Также в окне Preview будет показано, как всё это будет выглядеть.

      Таким образом, Genymotion предлагает неплохой и удобный функционал по работе с приложениями, однако полный его потенциал раскрывается в коммерческой версии.

      Эмуляторы в Android : 2 комментария

      Эм? Зачем тут эмуляторы Андроида? Если пост называется: Эмуляторы В андроид?

      Запуск вашего приложения

      Если вы следовали инструкциям предудыщего урока, то сейчас у вас есть все необходимое для немедленного запуска приложения.

      Как вы будете запускать приложение зависит от двух вещей: имеется ли у вас реальное Android устройство и используете ли вы Android Studio.

      Запуск на реальном устройстве

      Если у вас есть устройство, работающее под Android, следуйте инструкциям ниже для установки и запуска приложения.

      Подготовка вашего устройства

      1. Подключите ваше устройство к компьютеру с помощью USB кабеля. Если вы используете операционную систему Windows, может понадобиться установка USB драйвера для вашего устройства. Подробнее об установке драйверов читайте в разделе OEM USB драйвера.
      2. Включите на устройстве режим USB отладки.
        • На большинстве устройств, работающих под управлением Android 3.2 и старше данная опция находится в меню Настройки > Приложения > Разработка
        • В андроид 4.0 и новее опция находится в меню Настройка > Разработка.

      Примечание: В Android 4.2 и новее, пункт меню Разработка по умолчанию скрыт. Чтобы отобразить его в меню, нажмите Настройки > О телефоне и щелкните по пункту Номер сборки семь раз. После этого вернитесь в предыдущее меню и найдите пункт Разработка.

      Запуск приложения из Android Studio

      1. Выберите один из файлов вашего проекта и нажмите кнопку Runна панели инструментов.
      2. В появившемся окне Choose Device (выбор устройства), активируйте пункт Choose a running device (выбрать подключенное устройство) и выберите ваш телефон. Нажмите ОК.

      Android Studio установит приложение на подключенное устройство и запустит его.

      Читать:
      Standalone приложение что это

Похожие статьи