Приложение для отладки не задано что делать
Для управления Android-устройством с помощью другого девайса необходимо разрешить отладку по USB, что не требует прав root и делается прямо в меню настроек.
Отладка по USB: что это такое?
Несмотря на то, что кнопка активации функции находится в разделе «Для разработчиков», её функционал ещё со старых версий Android нередко требуется и простым пользователям. Так можно, грубо говоря, посылать команды смартфону с компьютера, причём это не просто запросы на обмен файлами, а нечто более технически сложное. Например, таким образом доступно тестирование приложений из Android Studio «в один клик», не запуская APK-установщик.
Примером более распространённого применения послужит работа с ADB – через него можно без прав «рут» удалять системные программы, откатывать версии. Требуют наличия отладки и приложения, расширяющие функциональность девайса. К примеру, XSplit Vcam, позволяющий использовать камеру смартфона на замену той, что покупается для компьютера отдельно, для стабильного соединения на замену связи по Wi-Fi рекомендует использовать USB-подключение, работающее только при включённой отладке.
Более того, мы даже снимали блокировку экрана, используя, как и программу ADB Run, так и обычную консоль Windows, и для этих двух методов тоже понадобилась USB-отладка. Из-за этого может показаться, что эта функция серьёзно понижает безопасность девайса. Так и есть, однако делается девайс уязвимым только на случай, если он оказался в руках у злоумышленника – для вирусов фактор включённости отладки не играет никакой роли. К тому же, в новых версиях «Андроида» и этот момент – не проблема, поскольку для расширенной работы с девайсом нужно сначала добавить устройство в список доверенных, а это невозможно, пока проверка по графическому ключу или PIN-коду (если есть) не пройдена.
Особенно полезна отладка при возникновении проблем с тачскрином девайса, при которых он неверно реагирует на прикосновения. Можно без труда провести, к примеру, сброс до заводских настроек, предварительно загрузив на компьютер программу ADB с официального сайта операционной системы. Таким же образом проводится обновление драйвера, исправляющее нестабильное соединение с другими девайсами. Кроме того, один из вариантов восстановления IMEI, с которым выходит в мобильную сеть любое устройство, тоже не работает, когда USB-отладка не разрешена.
Как включить отладку на «Андроиде»
Несмотря на открываемые отладкой возможности, включать её абсолютно безопасно. Это не приведёт к нестабильной работе софта и не станет причиной снятия гарантии в отличие от разблокировки загрузчика и, в некоторых случаях, получения root-доступа.
На Android 8, 9, 10, 11
Новейшие версии «Андроида» не просто дают максимально легко включить отладку, но и обеспечивают безопасную работу этой функции, запрашивая подтверждение для каждого подключаемого девайса.
Выполните следующие шаги:
Если используется прошивка от производителя, а не «чистый» Android, порядок действий будет примерно тем же, но названия элементов интерфейса могут отличаться. Мы детальнее рассмотрели варианты для гаджетов популярных марок в статье.
На Android 5.0–7.1
Для девайсов, работающих под управлением менее современных операционных систем, инструкция выглядит схоже с той, что актуальна для новых девайсов:
Не забудьте, что нужно не только включить отладку, но и все функции в разделе – тумблер для этого находится в верхнем правом углу. На Android 7.x допускается управление «чёрным» списком девайсов.
На старых версиях Android (4.2 и ниже)
В ранних версиях «Андроида» функция была не так «запрятана», как сейчас. Конечно, скрытые параметры не так сложно увидеть и на новых версиях, но до Android 4.2 порядок действий имеет следующий формат:
Здесь пользование этой особенностью действительно небезопасно – система не ведёт «белые» списки устройств, которые могут использовать USB-отладку, ввиду чего она доступна для всех ПК, подключаемых к смартфону. Это делает девайс уязвимым на случай кражи или утери – его можно будет полностью сбросить. Порадует лишь то, что подобные девайсы не стоят практически ничего и даже несовместимы с современными программами, доступными в Google Play.
Инструкция на более новых, но, всё же, устаревших релизах Android выглядит следующим образом:
Далее требуется подключить девайс к компьютеру и выбрать пункт «Отладка по USB». Если его нет, а функция активирована, то отладка будет включена автоматически.
На Samsung
Современные модели, выпускаемые «Самсунгом», работают под управлением One UI, гарантирующем совместимость с функциями каждого устройства бренда. Новая прошивка унаследовала порядок действий по включению меню разработчика от TouchWiz, где действия проводятся следующим образом:
На Honor, Huawei
Девайсы обеих марок работают на одинаковой оболочке EMUI, поэтому инструкции для этих устройств объединены в один раздел статьи. Несмотря на частые обновления прошивок, следующий список шагов актуален с первых версий:
На Xiaomi
Пользователям прошивки MIUI, даже если установлен последний релиз «Андроида», нужно следовать отдельному порядку действий:
Включение режима отладки через компьютер
Способ особенно актуален на случай возникновения проблем с экраном. Вариант доступен только при наличии кастомного рекавери TWRP либо CWM. Оба можно поставить через ПК, и на примере последнего составлена инструкция:
Можно также установить рекавери через утилиту Rashr, но она требует прямого взаимодействия с самим «Андроидом», поэтому использовать её при сломанном дисплее не получится. Аналогично дела обстоят с ROM Manager, требующим доступ root и тоже запускаемом на самом телефоне. Как только вы завершите предыдущие шаги, останется лишь включить USB-отладку:
- Загрузите архивы (1, 2) на ПК. Во втором находится утилита QtADB.exe, которая автоматически определит, где находятся файлы ADB. Если ей это не удалось, укажите путь к содержимому самостоятельно. Потом перейдите во вкладку «Advanced» и, подключив телефон по USB, посмотрите в окно «Status»: здесь должно быть написано «Ready»;
- Кликните «Файлы» на левой панели;
- Экран будет разделён на две части. Та, что находится слева, содержит файлы на компьютере, а напротив неё представлено содержимое телефона. В последней перейдите по пути /data/system/users/0/. Откройте файл settings_global.xml, в нём – XML-тег с названием adb_enabled. Измените значение атрибута value на 1.
Если используется TWRP, а не CWM, никакой разницы в этой инструкции не будет. В некоторых версиях «Андроида» по этому расположению доступен документ default.prop, в котором нужно дополнительно поставить ro.adb.secure=0, чтобы устройство могло подключаться к любым другим компьютерам, без сохранения их в «белые» списки.
Полезные команды в режиме отладки
Когда USB-отладка правильно настроена, можно посылать команды через ADB либо ADB Run. Поскольку последняя программа имеет более доступный начинающим пользователям интерфейс, большего внимания заслуживает первое приложение, официально выпущенное компанией Google.
Создание скриншота
Чтобы заскринить экран, не пользуясь боковыми клавишами и даже отдельной кнопкой, предусмотренной на некоторых телефонах фирмы ASUS, укажите следующее:
adb shell screencap /sdcard/screen.jpg
Скриншот с названием screen.jpg будет находиться в корне внешней MicroSD-памяти. Можно указать любое другое имя, а кроме расширения JPG поддерживается PNG. После понадобится «вытащить» изображение из памяти девайса:
adb pull /sdcard/screen.jpg
Для скриншота recovery подойдёт следующая команда:
adb pull /dev/graphics/fb0
Обратите внимание, что в этом случае файл будет иметь расширение fb0. Сконвертировать его в PNG можно через отдельно скачиваемый плагин FFMPEG. Для него потребуется данная команда:
Как результат, появится документ fb0.png с разрешением 1560 на 720 пикселей. Обратите внимание, что нужно указывать настоящий размер экрана, а также учесть, в каком положении на момент создания скриншота находился девайс: вертикальном или горизонтальном.
Запись видео
Не возникнет проблем и в создании видеороликов через функции ADB:
Будет создана запись длиною в три минуты, которая сохранится на SD-карте под названием video.mp4. Возможна более детальная настройка:
Для принудительной остановки любых процессов, связанных с ADB, следует воспользоваться комбинацией Ctrl+C.
Получение логов
Действия записываются процессами logcat и dmesg. Их легко сохранить в виде файлов:
adb logcat > logcat.txt
adb dmesg > dmesg.txt
Как итог, появятся текстовые документы, содержащие информацию о действиях, произведённых с девайсом в последнее время.
Резервное копирование софта
Создать бэкап приложений можно без утилит наподобие Titanium Backup, для этого понадобится команда adb backup. Она поддерживает следующие необязательные параметры:
Проблемы и способы их решения
Телефон не реагирует на команды
Для работы с ADB необходимо, чтобы кабель поддерживал передачу данных, а не только зарядку аккумулятора. Если с этим моментом проблем нет, то убедитесь, что отладка включена, а подключаемый компьютер находится в числе доверенных устройств (если такие списки ведутся системой).
Обратите внимание, что посылать команды, требующие USB-отладки, можно только, когда система полностью загрузилась. Например, ADB нельзя использовать, если устройство выключено или находится в режимах fastboot либо recovery.
Кнопка «Отладка по USB» неактивна
При подключении к компьютеру старые версии «Андроида» предлагают выбрать режим, в котором будет работать устройство (например, «USB-модем» или «Передача файлов»). Если в этом списке пункт «Отладка по USB» не нажимается или отсутствует, но вы уже включали её по инструкции из этого материала, не вытаскивая кабель, перейдите к панели быстрого доступа и откройте уведомление о подсоединении. Далее остаётся лишь активировать функцию через окно, открываемое этим оповещением.
Функционал, раскрываемый USB-отладкой, значительно помогает в выполнении многих задач и особенно важен на случай проблем с экраном. Даже если в момент поломки дисплея особенность была отключена, ничто не помешает активировать её вместе с установкой CWM либо TWRP, соблюдая порядок действий, описанный в материале.
В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения.
Автор: Eric Gruber
В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения. Хорошая новость в том, что для отладки не требуются привилегии суперпользователя. Описанные техники могут быть очень кстати во время пентестов мобильных приложений, поскольку мы можем «проникнуть» в код во время работы программы, получить и записать информацию, к которой обычно у нас нет доступа. Например, можно перехватить трафик перед шифрованием и на лету получить ключи, пароли и любую другую ценную информацию. Статья будет полезна пентестерам и разработчикам мобильных приложений, желающих получить более глубокие знания о возможных атаках на платформе Android.
Требования к тестовой среде:
В статье будет использоваться следующая конфигурация: Windows 8, Android Studio и IntelliJ IDEA. Устройство: Nexus 4 с Android версии 4.4.4. Рекомендую все утилиты добавить в переменную окружения PATH, чтобы облегчить и ускорить доступ к этим инструментам.
Настройка устройства
Инструкция ниже поможет вам подготовить устройство для экспериментов.
Активация раздела Developer Options
Рисунок 1: Для того чтобы активировать раздел Developer options, необходимо несколько раз кликнуть на Build number
Разрешение отладки через USB
Чтобы разрешить отладку через USB-порт, зайдите в раздел Settings > Developer options и отметьте флажок напротив USB debugging.
Рисунок 2: Включение опции USB debugging
Подключение устройства и запуск ADB
Устройство должно отобразиться в списке.
Рисунок 3: Список подключенных устройств
Если устройство не отобразилось в списке, то наиболее вероятная причина в некорректно установленных драйверах (в Windows). В зависимости от устройства драйвер можно найти либо в Android SDK, либо на сайте производителя.
Проверка приложения на возможность отладки
Перед отладкой Android-приложений вначале необходимо проверить, есть ли такая возможность. Проверку можно выполнить несколькими способами.
Первый способ – запустить Android Device Monitor, входящий в состав Android SDK (в папке tools). В Windows файл называется monitor.bat. При открытии Android Device Monitor устройство отобразится в разделе Devices.
Рисунок 4: Приложение Android Device Monitor
Если какое-либо приложение на устройстве можно отлаживать, это приложение также отобразится в списке. Я создал тестовую программу, но список пуст, поскольку программу отлаживать нельзя.
Второй способ проверить приложение на возможность отладки – исследовать файл AndroidManifest.xml из пакета приложения (APK, Android application package). APK представляет собой zip-архив, содержащий всю информацию, необходимую для запуска приложения на Android-устройстве.
Всякий раз, когда приложения загружается из Google Play Store, также загружается и пакет приложения. Все загруженные APK-файлы обычно хранятся на устройстве в папке /data/app. Если у вас нет прав суперпользователя, вы не сможете получить список файлов из директории /data/app. Хотя, если вы знаете имя APK-файла, можете скопировать его при помощи утилиты adb. Чтобы узнать имя APK-файла, введите следующую команду:
Появится командная строка устройства. Затем введите следующую команду:
pm list packages -f
Отобразится список всех пакетов на устройстве.
Рисунок 5: Перечень пакетов на устройстве
Глядя на список, находим тестовое приложение.
Рисунок 6: Пакет созданного тестового приложения (выделено белым)
Теперь необходимо скопировать файл пакета. Открываем шелл и вводим следующую команду:
adb pull /data/app/[.apk file] [location]
Рисунок 7: Копируем APK-файл с устройства в систему
Теперь нужно открыть файл пакета и исследовать содержимое AndroidManifest.xml. К сожалению, мы не можем просто так распаковать архив, поскольку APK-файл закодирован в бинарном формате. Для раскодировки чаще всего используется утилита apktool, хотя я использую APK Studio, поскольку у этого приложения дружелюбный графический интерфейс. Далее в статье будет рассказываться об APK Studio.
В APK Studio кликните на маленькую зеленую иконку, задайте имя проекту и укажите путь к APK файлу. Затем укажите пусть для сохранения проекта.
Рисунок 8: Создание нового проекта в APK Studio
После открытия APK выберите файл AndroidManifest.xml и посмотрите параметры тега application. Если флаг android:debuggable отсутствует (или присутствует, но установлено значение false), значит, приложение отлаживать нельзя.
Рисунок 9: Содержимое файла AndroidManifest.xml
Модификация файла AndroidManifest.xml
При помощи утилиты apktool или APK Studio мы можем модифицировать файлы и упаковывать содержимое обратно в пакет. Сейчас мы изменим файл AndroidManifest.xml так, чтобы приложение можно было отлаживать. Добавляем внутрь тега application строчку android:debuggable="true".
Рисунок 10: Изменяем содержимое тега application
После добавления флага кликаем на иконку «молоток» и заново собираем пакет. Пересобранный пакет будет находиться в директории build/apk.
Рисунок 11: Повторная сборка пакета завершилась успешно
После пересборки пакет подписывается и его можно заново установить на устройстве (все Android-приложения должны быть подписаны). Большинство приложений не проверяет сертификат, при помощи которого происходит подпись. В противном случае необходимо изменить код, выполняющий эту проверку.
Теперь нужно установить пересобранный пакет. Вначале удаляем старое приложение при помощи следующей команды:
adb pm uninstall[package name]
Затем устанавливаем новый пакет:
adb install [.apk file]
Также можно удалить и установить пакет одной командой:
adb install -r [.apk file]
Рисунок 12: Установка пересобранного пакета
Проверьте, чтобы переустановленное приложение корректно запускалось на устройстве. Если все работает, переходим обратно в Android Device Monitor, где должно появиться тестовое приложение.
Рисунок 13: Теперь пересобранное приложение можно отлаживать
Настройка среды разработки (IDE)
Теперь к пересобранному приложению можно подцепить отладчик, но вначале нужно создать проект в среде разработки (в статье используется IntelliJ IDEA). Создаем новый проект. В поле Application name указываем произвольное имя. В поле Package name указываем имя, в точности совпадающее с иерархией папок пересобранного пакета.
Рисунок 14: Создание нового проекта в IntelliJ IDEA
Рисунок 15: Иерархия директорий тестового приложения
Снимите флажок «Create Hello World Activity» и завершите создание проекта (все остальные параметры остаются по умолчанию). Новый проект должен выглядеть примерно так:
Рисунок 16: Иерархия папок и файлов нового проекта
После создания проекта нужно добавить исходный код из APK-файла для того, чтобы отладчик «знал» имена символов, методов, переменных и т. д. Хорошая новость в том, что Android-приложения можно декомпилировать практически без потери качества (исходный код будет совпадать с оригиналом). После декомпиляции исходный текст импортируется в среду разработки (IDE).
Получение исходных текстов из пакета приложения
Для начала необходимо преобразовать APK в jar-файл. Затем мы при помощи java-декомпилятора получим исходный текст приложения. Преобразование в jar будем делать при помощи утилиты dex2jar. У dex2jar есть файл d2j-dex2jar.bat, используемый для конвертирования APK в jar. Синтаксис команды довольно прост:
d2j-dex2jar.bat [.apk file]
Рисунок 17: Преобразование APK в jar
Затем открываем или перетаскиваем полученный файл в JD-GUI (это java-декомпилятор).
Рисунок 18: Структура jar-файла
Jar-файл должен отобразиться в виде иерархической структуры, внутри которой находятся java-файлы с читабельным исходным кодом. Заходим в File > Save All Sources, чтобы упаковать все исходные тексты в zip-архив.
Рисунок 19: Сохранение исходных текстов декомпилированного файла
После сохранения исходных текстов распаковываем архив в отдельную директорию.
Рисунок 20: Распакованный архив
Теперь нужно импортировать обе директории в созданный ранее проект в IDE. В IntelliJ заходим в папку src и копируем туда содержимое распакованного архива (две директории).
Рисунок 21: Обе папки скопированы в директорию src
Возвращаясь в Intellij, видим обновленный проект.
Рисунок 22: В проекте появились исходные тексты
Если мы кликнем на какой-нибудь элемент из списка, то увидим исходный текст. Как видно на скриншоте ниже (исходный текст класса LoginActivity), исходный код обфусцирован при помощи ProGuard.
Рисунок 23: Обфусцированный исходный текст класса LoginActivity
Подключение отладчика
Теперь, когда в проекте появились исходные тексты, мы можем начать устанавливать точки останова на методах и переменных. По достижению точек останова приложение будет останавливаться. В качестве примера я установил точку останова на методе (прямо в обфусцированном коде), отвечающим за обработку информации, введенной в текстовом поле.
Рисунок 24: Поставлена точка останова на обфусцированный метод
Как только появилась точка останова, подключаем отладчик к процессу на устройстве, кликнув на иконку с экраном в правом верхнем углу (на вашей IDE иконка может отличаться).
Рисунок 25: Подключаем отладчик к процессу
Далее вам будет предложено выбрать процесс, к которому нужно подключиться. Будут отображены только процессы с флагом android:debuggable="true".
Рисунок 26: Перечень процессов для подключения отладчика
После выбора процесса отладчик подсоединится к устройству.
Рисунок 27: Отладчик подключен к процессу, запущенному на устройстве
В текстовое поле я буду вводить число 42 (если помните, на соответствующем методе стоит точка останова).
Рисунок 28: В текстовое поле вводим число 42
После нажатия на кнопку «Enter Code» выполнение приложения прервется на точке останова, поскольку отладчик «осведомлен», какой метод вызывается на устройстве. Скомпилированное Android-приложение содержит отладочную информацию (например, имена переменных), доступную любому отладчику, совместимому с Java Debug Wire Protocol (JDWP). Если в приложении разрешена отладка, отладчик, совместимый с JDWP (в эту категорию попадает большинство отладчиков идущих в составе сред разработки для Java), сможет подсоединиться к виртуальной машине Android-приложения, а затем считывать и выполнять отладочные команды.
Рисунок 29: Сработала точка останова
На скриншоте ниже видно число, которое ранее мы ввели в текстовом поле.
Рисунок 30: Перечень переменных текущего экземпляра класса
Мы можем не только считывать данные в приложении, но и вставлять свои собственные. Это может быть полезно, если мы, например, захотим прервать поток выполнения кода и обойти некоторые участки алгоритма. При помощи отладчика мы можем лучше понять логику работы приложения и проанализировать то, что недоступно обычному пользователю. Например, может оказаться очень полезным просмотр используемых функций шифрования и динамические ключи. Кроме того, иногда при отладке полезно знать, как функции взаимодействуют с файловой системой или базой данных, чтобы понять какая информация сохраняется приложением. Подобные манипуляции доступны на любом Android-устройстве без привилегий суперпользователя.
Разбираю пункты, которые действительно стоит включать (или наоборот) на вашем смартфоне, а так же коротко объясняю за что каждый из них отвечает.
Безусловно, меню «Для разработчиков» уже самим своим названием намекает на то, что не предназначается для рядовых пользователей, но как известно «Запретный плод сладок» и одно только его упоминание уже вызывает интерес, чем нередко пользуются недобросовестные авторы.
Я же не оставляю надежды «сделать себе имя» досконально разбирая каждую системную настройку, чтобы вы не просто нажимали на какую-то кнопку, а понимали зачем это делаете. И для начала (вдруг кто-то не знает) покажу как получить доступ к настройкам для разработчиков (на примере смартфона Xiaomi)
Настройки —> О телефоне —> Многократное нажатие на пункт «Версия MIUI», Затем «Настройки» —> Расширенные настройки —> Для разработчиков Настройки —> О телефоне —> Многократное нажатие на пункт «Версия MIUI», Затем «Настройки» —> Расширенные настройки —> Для разработчиковОтладка по USB и Отзыв разрешений на отладку
Первый пункт позволяет подключать смартфон к компьютеру в особом режиме, который нужен для внесения изменений в систему. Например, для отключения ненужных приложений или ускорения работы системы, о котором я не раз рассказывал.
Настройка с отзывом, стирает из памяти смартфона цифровые ключи всех компьютеров, которым вы когда-либо разрешили такой формат подключения. В некоторых случаях, именно стирание этих данных помогает устранить некоторые проблемы при работе с ADB.
Установка через USB
Разрешает устанавливать APK файлы на смартфон прямо с компьютера. Единственным минусом в использовании на смартфонах Xiaomi, является обязательная авторизация в Mi Аккаунте.
Проверять байт-код приложений доступных для отладки
Функция только для разработчиков, её суть заключается в том, чтобы проверять код приложений через которые будет производиться отладка и так как на вашем смартфоне таких нет, рекомендую отключить этот пункт.
Буфер журнала
Не раз встречал советы с предложением отключить или наоборот увеличить размер этого буфера. Якобы это поможет смартфону работать быстрее. Но что же произойдёт на самом деле?
Система перестанет стирать старые записи (которые уже не актуальны) и продолжит хранить их в этом документе. Эта информация никак не влияет на производительность, так как это обычный текстовый документ, а увеличение или уменьшение размера, означает только регулировку памяти отведённой под этот файл.
Поэтому трогать его и соседний «Уровень журнала» не стоит. Кстати, в 2017 году были проведены тесты которые показали, что значения выше 256 кб являются избыточными и требуются только на этапе создания системы.
Настройки графического драйвера
Позволяет выбрать драйвер для каждого конкретного приложения и часто используется на примере мобильных игр.
Помимо системного есть ещё "Game Driver" и "Предварительная версия Game Driver" Помимо системного есть ещё "Game Driver" и "Предварительная версия Game Driver"Но суть заключается в том, что все изменения в этом меню тоже не принесут результата, так как в режиме «По умолчанию» система Android автоматически выберет наилучший из представленных. А в случае внесения изменений, вы рискуете ограничить функционал игры или приложения.
Трассировка системы
Зайдите в это меню и отключите верхние две галочки, после чего нажмите на «Удалить сохранённые записи действий», ведь этот пункт нужен только для разработчиков и для вас не несёт абсолютно никакой практической пользы.
Если лень удалять, система сделает это за вас спустя месяц Если лень удалять, система сделает это за вас спустя месяцНе отключать мобильный интернет
Позволяет смартфону при нестабильном соединении с использованием Wi-Fi задействовать мобильный интернет, таким образом значительно уменьшая автономность смартфона. На своих телефонах я всегда отключаю эту настройку.
Конфигурация USB по умолчанию
Главное назначение этой настройки - экономия времени. С её помощью вы можете выбрать режим в котором чаще всего используете ваш смартфон при подключении к компьютеру, таким образом вам не нужно будет каждый раз выбирать формат подключения в отдельном меню.
Это лишь первая часть статьи, так как я не уверен, что подобный формат вам понравится. Если она получит позитивные отзывы, то в скором времени я расскажу про настройку звука в меню «Для разработчиков», поэтому решать вам.
Разрабатывая свое первое приложение под Android, я столкнулся с проблемой запуска приложения для проверки и отладки. Эта статья должна помочь начинающему пользователю выбрать средство эмуляции.
Содержание:
Android Virtual Device (AVD)
Установка:
Это средство эмуляции встроено в Android SDK.
Настройка:
(на примере использования в Eclipse)
Window > Android SDK and AVD Manager > New
Вписываем имя виртуального устройства, платформу, размер карты памяти, тип дисплея…
Жмем Create AVD.
Запуск:
Первый запуск эмулятор длиться очень долго, особенно на слабых устройствах. Например, я так и не смог дождаться первого запуска на своем нетбуке, а, запуская первый раз на компьютере, был уверен, что эмулятор ушел в вечный цикл.
Последующие запуски эмулятора будут чуть шутрее.
Время между нажатием кнопки «Run» и появлением главного активити тестового приложения на эмуляторе проходит в среднем 11 секунд. Замеры проводил на достаточно производительном компьютере.
VirtualBox+Android x86
- Скачиваем и устанавливаем VirtualBox.
- Скачиваем образ.
- «Создаём виртуальную машину Linux 2.6/Other Linux, 512 Mb RAM, Bridged Network, HD 2 Gb, Disable Mouse Integration. Подключаем ISO файл и загружаемся одной из опций LiveCD (есть вариант HDPI и MDPI)» (с) или следуем этой инструкции.
- Нажимаем Alt-F1 для выхода в консоль и набираем netcfg и запоминаем IP адрес эмулятора. Для возврата к GUI, нажимаем Alt-F7.
- adb connect <IP адрес эмулятора>
Запуск:
Время между нажатием кнопки «Run» и появлением главного активити тестового приложения на эмуляторе не засекал, но, по субъективным ощущениям, это происходит почти мгновенно.
Преимущества и недостатки:
+ маленький промежуток времени между нажатием кнопки «Run» и запуском приложения на эмуляторе
+ местами шустрая работа
— достаточно длительная и иногда проблематичная установка
— эмулятор работает местами медленно, имеются проблемы с изображением (особенно на MDPI)
— проблемы с эмуляцией SD-карты, сменой ориентацию экрана,…
— только два (три) доступные версии ОС Android и только два доступных типа дисплея
Телефон с ОС Android, подключенный через USB
- Включаем на телефоне режим отладки. (Насторйки > Приложения > Разработка > Отладка по USB).
- Скачиваем драйвер для вашего телефона.
- Подключаем телефон к ПК.
- Устанавливаем драйвера. В Диспетчере устройств должен появиться раздел ADB Interface.
- adb devices. Если ваш телефон не отображается в списке, то переустанавливаем драйвер ADB.
Запуск:
Между нажатием кнопки «Run» и появлением главного активити тестового приложения на телефоне проходит порядка 5 секунд.
Преимущества и недостатки:
+ возможность увидеть приложение так, как его будет видеть пользователь (очень важным момент, особенно при создании интерфейса и дизайна приложения)
+ мультитач (если есть в телефоне)
+ смена ориентации экрана, акселерометр (если есть в телефоне)
— только одна версия ОС и один тип дисплея
— на физическом рабочем столе появиться еще один объект
Выводы:
Я пробовал работать с каждым из этих средств эмуляции и остановился на таком варианте:
1. написание и тестирование приложения, используя телефон;
2. тестирование приложения на многочисленных Android Virtual Device с различными комбинациями версии ОС и типа дисплея.
Надеюсь, что читающий сделал выбор эмулятора или почерпнул для себя что-то новое.
Удачи в тестировании!
Читайте также: