Статьи

Android SDK: запуск и отладка

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


Для тех, кто следил за этой серией по разработке приложений для Android, приложение, которое мы создали ранее, мало что делает в данный момент, но мы можем использовать его для прохождения процесса запуска приложений по мере их разработки, а также для ознакомления с некоторыми из утилиты Eclipse ADT, которые вы будете использовать для отладки, когда ваши приложения станут более продвинутыми. Завершив этот урок, вы можете потратить некоторое время на внесение изменений в код в приложении, которое мы создали, а затем запустить его на физическом или виртуальном устройстве. Этот учебник поможет вам освоить рутину использования устройств во время разработки и регулярного запуска ваших приложений, чтобы вы могли ловить ошибки при кодировании.


Когда вы компилируете и запускаете приложение Android на виртуальном или физическом устройстве, Eclipse обрабатывает большинство деталей для вас. Eclipse и ADT создают файл APK для вашего приложения и устанавливают его на устройство, на котором вы работаете. В конечном итоге APK-файлы — это то, что пользователь скачивает из Google Play. Однако вам нужно выполнить дополнительные шаги для создания приложений для выпуска, о чем мы расскажем позже в этой серии. Изначально Eclipse создаст APK для отладки, который вы можете запустить непосредственно на устройстве из IDE.

Подключите аппаратное устройство к вашему компьютеру или запустите AVD, используя методы, которые мы рассмотрели в предыдущем уроке. Мы запустим приложение на любом подключенном устройстве. Любое виртуальное или реальное устройство должно соответствовать минимальному уровню API, указанному в манифесте приложения, иначе вы не сможете его запустить.

Теперь мы можем запустить приложение, сначала создав для него конфигурацию запуска. В Eclipse выберите «Выполнить», затем «Выполнить настройки». Слева от окна Run Configurations вы увидите список типов приложений, которые вы можете запустить. Выберите «Приложение Android» и нажмите кнопку «Создать» над ним.

Запустить конфигурации

В открывшемся разделе новой конфигурации введите имя в поле Имя, заменив существующий текст. Это должно идентифицировать ваше приложение с первого взгляда. Нажмите кнопку «Обзор», выберите проект приложения и нажмите «ОК».

Выберите приложение

Нажмите на вкладку «Цель». Вы можете позволить Eclipse автоматически выбирать устройство для запуска приложения или настроить его так, чтобы он предлагал вам делать выбор при каждом запуске приложения. Это применимо только в том случае, если к Eclipse подключено более одного устройства, например, аппаратное устройство и AVD.

Target Tab

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

Нажмите «Выполнить». Если вы настроите команду run config для выбора устройства, Eclipse сделает это сейчас. Выберите физическое или виртуальное устройство, которое вы используете. Если у вас нет подключенного устройства или работает AVD, но Eclipse настроен на автоматический выбор устройства, он запустит подходящий из ваших AVD сейчас. Вы можете использовать кнопку «Выполнить» на панели инструментов Eclipse, чтобы запустить любое приложение, которое вы запускали последним, без необходимости каждый раз проходить через окно «Запустить конфигурации».

Подсказка: если вы прокрутите вниз на вкладке Run Configuration Target вашего приложения, вы увидите раздел с параметрами эмулятора, включая поле командной строки. См. Руководство разработчика для полного списка параметров командной строки, которые вы можете указать при использовании AVD.

При запуске приложения Eclipse копирует APK на устройство, устанавливает его и запускает основное действие.

Приложение запущено

Помните основное взаимодействие с пользователем, которое мы реализовали с помощью кнопки; щелчок по нему изменяет отображаемый текст (щелчок мышью по AVD эмулирует касание пальцем на реальном устройстве).

Кнопка нажата

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

1
private final String LOG_TAG = «MainActivity»;

Это константа тега, которую мы будем использовать для записи сообщений журнала. Использование имени класса позволяет понять, из какого класса поступило сообщение журнала. В методе onClick перед настройкой текста на кнопке добавьте следующий код:

1
Log.v(LOG_TAG, «button clicked»);

Вам понадобится импорт «android.util.Log» в вашем классе. Когда вы пишете в журнал, вы можете выбрать один из нескольких методов, чтобы отразить цель сообщения. В приведенном выше коде мы используем v для многословия. Вы также можете использовать d для отладочных сообщений, i для информации, w для предупреждения и e для ошибки.

Сохраните файл и снова запустите приложение, нажав кнопку «Выполнить». Убедитесь, что в Eclipse открыт LogCat View. Нажмите кнопку UI на вашем устройстве или снова AVD. Прокрутите сообщения журнала в представлении LogCat, пока не найдете свое сообщение.

Сообщения в журнале

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

Поиск LogCat
Совет: Если вы обнаружите, что Eclipse зависает или дает сбой при использовании LogCat View, выберите «Окно», «Предпочтения», «Android», затем «LogCat» и установите максимальное количество сообщений LogCat для буферизации. Если это не поможет, уменьшите число и попробуйте снова.

Мы не будем вдаваться в подробности тестирования в этом руководстве, так как это тема для дальнейшего изучения в Android. Когда вы будете готовы начать тестирование, вы можете создать тестовый проект для своего приложения в Eclipse. См. Руководство для разработчиков по основам тестирования и учебным занятиям по тестированию активности для получения исчерпывающего руководства по тестированию на Android. Инструменты тестирования основаны на JUnit, а выделенные ресурсы для тестирования Android расширяют JUnit специально для разработки под Android. Если вы уже знакомы с тестированием Java, вы должны знать большую часть того, что вам нужно для тестирования приложений Android.


Хотя вам не нужно сразу заниматься отладкой приложений, мы расскажем о том, что вы можете сделать с помощью DDMS (Dalvik Debug Monitor Server), поскольку инструменты могут оказаться полезными на протяжении всего процесса разработки. Мы уже видели одно из представлений отладки в Eclipse, LogCat, но есть несколько других, которые вы можете использовать.

Когда аппаратное или виртуальное устройство работает и подключено к Eclipse, откройте перспективу DDMS, выбрав «Окно», «Открыть перспективу» и «DDMS». Вы можете переключаться между этим и перспективой Java, используя кнопки, которые вы видите в верхнем правом углу Eclipse.

Давайте рассмотрим некоторые из представлений DDMS. Мы встречались с Devices View в прошлый раз (он отображает список подключенных устройств вместе со ссылками на любые процессы, запущенные на них). Выбор процесса дает вам доступ к кнопкам в представлении устройств. Найдите свой в списке, ища название пакета.

Процесс приложения

Выбрав свой процесс, нажмите кнопку «Обновить потоки» в представлении устройств, чтобы заполнить представление потоков.

Обновления темы

Кнопка «Обновить кучу» имеет тот же эффект для просмотра кучи. Вы познакомитесь с другими представлениями по мере необходимости для приложений, которые вы разрабатываете, некоторые из них относятся только к приложениям, выполняющим определенные типы задач. А пока, просто уделите минутку, чтобы заметить пару аспектов DDMS, о которых стоит помнить.

Вид эмулятора обеспечивает контроль над всеми запущенными экземплярами виртуальных устройств, как вы увидите, если вы выберете AVD в списке «Устройства» и откроете вкладку «Управление эмулятором». Также обратите внимание, что вы можете остановить запущенный процесс в представлении «Устройства», отладить запущенный процесс и принудительно выполнить сборку мусора. Прежде чем мы закончим смотреть на DDMS, когда ваше приложение будет отображаться на экране аппаратного или виртуального устройства, выберите устройство в представлении «Устройства» и нажмите кнопку «Снимок экрана».

Кнопка захвата экрана

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

Окно захвата экрана

Дополнительные советы по отладке приложений Android см. В Руководстве разработчика .


Когда вы начнете создавать приложения для Android, ваши основные проблемы будут связаны с запуском ваших приложений и отслеживанием их поведения с помощью регистрации сообщений на консоли. Однако по мере того, как ваши проекты становятся все более сложными, и когда вы дойдете до стадии подготовки приложений к выпуску, вы найдете инструменты отладки и тестирования для Android в Eclipse незаменимыми. В следующей части этой серии мы представим жизненный стиль Android Activity, который необходимо понять, прежде чем вы сможете приступить к созданию полнофункциональных приложений.