Санкт-Петербургский государственный университет
Опубликован: 12.07.2013 | Доступ: свободный | Студентов: 246 / 38 | Длительность: 09:36:00
Специальности: Программист
Самостоятельная работа 1:

Установка ПО для разработки и тестирования приложений

< Лекция 1 || Самостоятельная работа 1: 123 || Лекция 2 >

Основные компоненты среды отладки Android:

ADB (AndroidDebugBridge) – выступает в качестве посредника между устройством и программой.

Dalvik Debug Monitor Service (DDMS) – это элемент плагина Android, используемый для анализа работы виртуальной машины. Последовательно отображает поток информации, которая описывает каждый шаг работы виртуальной машины.

Device or Android Virtual Device (AVD). Ваше приложение должно выполняться на устройстве или в AVD так чтобы оно могло быть отлажено. Демон adb устройства работает на устройстве или эмуляторе, и предоставляет средства для демона adb хоста для предоставления связи с устройством или эмулятором.

ADB – клиент-серверное приложение, состоящее из трех компонентов (рис. 2.12).

Клиент запускается на машине разработчика. Клиент можно запустить из командной строки при помощи команд, посылаемых adb. Другие инструменты Android, вроде плагина ADT и DDMS, тоже создают adb-клиенты.

Сервер запускается на машине разработчика в виде фонового процесса. Сервер управляет соединениями между клиентами и adb-сервисом, запущенным на эмуляторе или устройстве.

Сервис – фоновый процесс, который запускается на каждом эмуляторе или устройстве.

Debug
logcat[<option>]
{<filter-specs>]
Prints log data to the screen
bigreport Prints dumpsys, dumpstate and logcat data to rhe screen, for the purposes of bug reporting.
jdwp Prints a list of available JDWP processes on a given device. You can use the forward jdwp:<pid> port-forwarding specification to connect to a specific JDWP process. For example:
adb forward tcp:800 jdwp:472
jdb -attach localhost:8000
Пример использования клиент-серверного приложения ADB

Рис. 2.12. Пример использования клиент-серверного приложения ADB

LogCat – система ведения лога в Android обеспечивает механизм для сбора и просмотра системных отладочных сообщений. Логи из различных приложений и элементов системы Android собираются воедино, а затем их можно просматривать и фильтровать посредством команды logcat (рис. 2.13).

>Logcat можно использовать для просмотра и слежения за содержанием буферов системного лога. Формат использования:

[adb] logcat [<option>] ... [<filter-spec>] … 

Фильтрация вывода лога: каждое сообщение лога в Android имеет тэги приоритет.

Тэг – это строка, указывающая на компонент системы, от которого принято сообщение (например, View для системы view).

Приоритет имеет одно из нижеследующих значений (в порядке от меньшего к большему): V – Verbose (низший приоритет); D – Debug; I – Info; W – Warning; E – Error; F – Fatal; S – Silent (наивысший приоритет, при котором ничего не выводится).

Выражения фильтра позволяют указать системе нужные комбинации <тэг> и <приоритет>. Остальные сообщения система не выводит. Выражения фильтра имеют следующий формат: <тэг>:<приоритет>.

Пример использования LogCat

Рис. 2.13. Пример использования LogCat

Отлаживать приложения в Eclipse гораздо проще, чем в консоли, благодаря использованию standpoints. Но проблема отладки через Eclipse может возникнуть, если вы отлаживаете приложения, запущенные на эмуляторе, а не на устройстве. Эмулятор работает довольно медленно, а при отладке каждый переход работает более 3 секунд. Это очень долго. Так что, если вы отлаживаете большое приложение, и при отладке наткнулись на цикл, содержащий 100 итераций, то, чтобы его пройти, вам потребуется более length(circle)*3*100 секунд. В таких случаях лучше использовать отладку с фильтрами через консоль и выводить отладочную информацию в файл с дальнейшим выявлением ошибок.

При отладке в Eclipse пользуйтесь утилитой

LogCat (Window->Show view->Android->LogCat, 

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

Описание приложения

Приложение, которое будет подробно рассмотрено ниже, написано в IDE Eclipse Indigo, поэтому используйте именно эту версию или более позднюю.

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

Общая идея. Обычно, если приложение не имеет сложной структуры, то в одном состоянии приложения используется только один стиль размещения. Мы рассмотрим приложение, которое содержит в себе много различных layouts. Это достигается путем создания в качестве главного layout, TabLayout, у которого каждый tab имеет свой способ размещения. Конечно, такая архитектура используется редко, так как пользователю приятнее видеть плавное переключение между табами в противовес нашему варианту.

Структура.

TabLayout →

  • Tab1: -> LinearLayout.
  • Tab2: -> RelativeLayout.
  • Tab3: -> GridLayout.

Архитектура Tab1.

Интерфейс для работы с датой в Android.

Компоненты:

  • TextView – простое текстовое поле, в котором будет отображаться текущая или вручную установленная дата.
  • Button – кнопка, которая инициирует появление окошка DitaPicker, в котором отображается текущая дата.

В окне стандартно есть контролы, позволяющие изменить дату.

Архитектура Tab2.

В этом табе будут представлены некоторые виджеты UI и в качестве бонуса будет продемонстрирован Spinner и процесс взаимодейтвия с ним.

Компоненты:

  • TextView – текстовое поле, отображающее статическую информацию.
  • EditText – текстовое поле с поддержкой редактирования.
  • Button – кнопка OK.
  • Button – кнопка Cancel.
  • Spinner – выпадающий список с обработкой события выбора.

Архитектура Tab3.

В этом табе будут представлены графические объекты (картинки), размещенные в виде таблицы.

Компоненты:

  • GridView – представление, отображающее элементы в двумерной сетке с поддержкой вертикального или горизонтального скрола. Элементы, ассоциированные с Grid представлением, должны быть представлены с помощью ListAdapter.
< Лекция 1 || Самостоятельная работа 1: 123 || Лекция 2 >
Николай Корнеев
Николай Корнеев

В самостоятельной работе №1 нет примера lab01 файла labAtom32.rar. Ссылка которая есть в презентации

www.math.spbu.ru/user/gran/Atom32/lab01

не работает?