Главная страница
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
qrcode

Программирование под Android. Для профессионалов


Скачать 19.35 Mb.
НазваниеПрограммирование под Android. Для профессионалов
АнкорBrayn Khardi Bill Fillips - Programmirovanie po.
Дата23.05.2017
Размер19.35 Mb.
Формат файлаpdf
Имя файлаBrayn_Khardi_Bill_Fillips_-_Programmirovanie_po.pdf
оригинальный pdf просмотр
ТипДокументы
#21061
страница4 из 55
КаталогОбразовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
1   2   3   4   5   6   7   8   9   ...   55
Глава 33. Отслеживание местоположения устройства ......................................... 531
Создание приложения RunTracker ...............................................................................................531
Создание класса RunActivity ........................................................................................................533
Класс RunFragment .....................................................................................................................533

14
Содержание
Добавление строк ...................................................................................................................534
Файл макета ...........................................................................................................................534
Создание класса RunFragment .................................................................................................534
Местоположение и LocationManager ...........................................................................................535
Получение широковещательных обновлений местоположения ...................................................537
Обновление пользовательского интерфейса данными местоположения .....................................539
Ускорение отклика: последнее известное местоположение ........................................................543
Тестирование на реальных и виртуальных устройствах ..............................................................544
Глава 34. Локальные базы данных и SQLite .......................................................... 547
Хранение серий и позиций в базе данных ..................................................................................547
Запрос списка серий из базы данных ..........................................................................................554
Вывод списка серий с использованием CursorAdapter .................................................................556
Создание новых серий ................................................................................................................559
Работа с существующими сериями ..............................................................................................561
Упражнение: выделение текущей серии .....................................................................................567
Глава 35. Асинхронная загрузка данных ................................................................ 568
Loader и LoaderManager ..............................................................................................................568
Использование загрузчиков в RunTracker ....................................................................................570
Загрузка списка серий ................................................................................................................570
Загрузка одной серии .................................................................................................................574
Загрузка последней позиции в серии ..........................................................................................577
Глава 36. Карты ........................................................................................................ 579
Добавление Maps API в приложение RunTracker .........................................................................579
Тестирование на реальном устройстве ....................................................................................579
Установка и использование Google Play services SDK ...............................................................579
Получение ключа Google Maps API ..........................................................................................580
Обновление манифеста RunTracker .........................................................................................580
Вывод местоположения пользователя на карте ..........................................................................581
Вывод маршрута .........................................................................................................................585
Добавление маркеров начала и конца маршрута ........................................................................589
Упражнение: оперативное обновление .......................................................................................590
Глава 37. Послесловие ............................................................................................. 591
Последнее упражнение ..............................................................................................................591
Бессовестная самореклама .........................................................................................................592
Спасибо ......................................................................................................................................592

Посвящается Доновану. Надеюсь, что его жизнь будет полна активностей и он всегда будет знать, когда применять фрагменты.
— Б. Х.

Благодарности
Нам немного неудобно, что на обложке книги указаны только наши имена. Дело в том, что без многочисленных помощников эта книга никогда бы не вышла в свет.
Мы им всем многим обязаны.

Крис Стюарт (Chris Stewart) и Оуэн Мэтьюз (Owen Matthews) предложили ряд замечательных идей по основополагающему материалу нескольких глав.

Мы благодарны нашим коллегам-преподавателям Крису Стюарту и Кристоферу
Муру (Christopher Moorу) за их терпение по преподаванию промежуточных рабочих материалов, за их предложения и исправления по этим материалам и за консультации при планировании радикальных изменений.

Наши коллеги Болот Керимбаев (Bolot Kerimbaev) и Эндрю Лунсфорд (Andrew
Lunsford) высказали исключительно ценное мнение по поводу использования фрагментов.

Технические рецензенты Фрэнк Роблес (Frank Robles), Джим Стил (Jim Steele),
Лора Касселл (Laura Cassell), Марк Далримпл (Mark Dalrymple) и Магнус Дал
(Magnus Dahl) помогли нам найти и исправить неточности в тексте.

Спасибо Аарону Хиллегассу (Aaron Hillegass). Вера Аарона в людей — одна из великих, ужасающих сил природы. Без нее мы бы никогда не получили возмож- ности написать эту книгу и не дописали бы ее до конца. (А еще он нам платил, что было очень любезно с его стороны.)

Наш редактор Сьюзен Лопер (Susan Loper) обладает невероятным умением превращать наши разглагольствования и несмешные шутки в продуманный, лаконичный текст. Без ее помощи читать эту книгу было бы не так приятно.
Она научила нас всему, что мы знаем о четком и доступном изложении техни- ческого материала.

Спасибо NASA. Наша книга кажется маленькой и глупой по сравнению с их усилиями по изучению Солнечной системы.

Благодарности
17

Мы благодарим Элли Волкхаузен ( Ellie Volckhausen), дизайнера обложки.

Крис Лопер из IntelligentEnglish.com сверстал и выпустил как печатный ва- риант книги, так и версии для EPUB и Kindle. Его инструментарий DocBook существенно упрощает нашу жизнь.

Спасибо всем, кто предоставил нам на Facebook столько полезной информации об учебном курсе.
Остается лишь поблагодарить наших студентов. Жаль, что у нас не хватит места, чтобы поблагодарить каждого, кто высказал свое мнение или указал на недостаток в формирующемся учебном курсе. Мы постарались удовлетворить вашу любозна- тельность и объяснить то, что было непонятно. Спасибо вам.

Изучение Android
Начинающему программисту Android предстоит основательно потрудиться.
Изучение Android — все равно что жизнь в другой стране: даже если вы гово- рите на местном языке, на первых порах вы все равно не чувствуете себя дома.
Такое впечатление, что все окружающие понимают что-то такое, чего вы еще не усвоили. И даже то, что уже известно, в новом контексте оказывается попросту неправильным.
У Android существует определенная культура. Носители этой культуры общаютcя на Java, но знать Java недостаточно. Чтобы понять Android, необходимо изучить много новых идей и приемов. Когда оказываешься в незнакомой местности, по- лезно иметь под рукой путеводитель.
Здесь на помощь приходим мы. Мы, сотрудники Big Nerd Ranch, считаем, что каждый программист Android должен:

писать
приложения для Android;

понимать
, что он пишет.
Этот учебник поможет вам в достижении обеих целей. Мы обучали сотни про- фессиональных программистов Android. Мы проведем вас по пути разработки нескольких приложений Android, описывая новые концепции и приемы по мере надобности. Если на пути нам встретятся какие-то трудности, если что-то по- кажется слишком сложным или нелогичным, мы постараемся объяснить, как возникло такое состояние дел.
Такой подход позволит вам сходу применить полученные сведения — вместо того чтобы накопить массу теоретических знаний, а потом разбираться, как же их использовать на практике. Перевернув последнюю страницу, вы будете об- ладать всем опытом, необходимым для дальнейшей работы в качестве Android- разработчика.

Структура книги
19
Предварительные условия
Чтобы использовать эту книгу, читатель должен быть знаком с языком Java, включая такие концепции, как классы и объекты, интерфейсы, слушатели, пакеты, внутрен- ние классы, анонимные внутренние классы и обобщенные классы.
Без знания этих концепций вы почувствуете себя в джунглях, начиная со страни- цы 2. Лучше начните с вводного учебника по Java и вернитесь к этой книге после его прочтения. Сейчас имеется много превосходных книг для начинающих; подберите нужный вариант в зависимости от своего опыта программирования и стиля обучения.
Если вы хорошо разбираетесь в концепциях объектно-ориентированного програм- мирования, но успели малость подзабыть Java — скорее всего, все будет нормально.
Мы приводим краткие напоминания о некоторых специфических возможностях
Java (таких, как интерфейсы и анонимные внутренние классы). Держите учебник по Java наготове на случай, если вам понадобится дополнительная информация во время чтения.
Как работать с книгой
Книга основана на материалах пятидневного учебного курса в Big Nerd Ranch.
Соответственно предполагается, что вы будете читать ее с самого начала. Каждая глава базируется на предшествующем материале, и пропускать главы не рекомен- дуется. Таким образом, это не справочник. Мы старались помочь в преодолении начального барьера, чтобы вы могли извлечь максимум пользы из существующих справочников и сборников рецептов.
На наших занятиях студенты прорабатывают эти материалы, но в обучении также задействованы и другие факторы — специальное учебное помещение, хорошее питание и удобная доска, группа заинтересованных коллег и преподаватель, от- вечающий на вопросы.
Желательно, чтобы ваша учебная среда была похожа на нашу. В частности, вам стоит хорошенько выспаться и найти спокойное место для работы. Следующие факторы тоже пригодятся:

Создайте учебную группу с друзьями или коллегами.

Выделяйте время, в которое вы будете заниматься исключительно чтением книги.

Примите участие в работе форума книги на сайте forums.bignerdranch.com.

Найдите специалиста по Android, который поможет вам в трудный момент.
Структура книги
В этой книге мы напишем восемь приложений для Android. Два приложения очень просты, и на их создание уходит всего одна глава. Другие приложения часто оказываются более сложными, а самое длинное приложение занимает тринадцать

20
Изучение Android глав. Все приложения спроектированы так, чтобы продемонстрировать важные концепции и приемы и дать опыт их практического применения.
GeoQuiz — в первом приложении мы исследуем основные принципы создания проектов Android, активности, макеты и явные интенты.
CriminalIntent — самое большое приложение в книге предназначено для хранения информации о проступках ваших коллег по офису. Вы научитесь использовать фрагменты, интерфейсы «главное-детализированное представление», списковые интерфейсы, меню, камеру, неявные интенты и многое другое.
HelloMoon — маленький алтарь программы «Аполлон». При построении этого приложения вы узнаете больше о фрагментах, воспроизведении мультимедийного контента, ресурсах и локализации.
NerdLauncher — нестандартный лаунчер раскроет тонкости работы системы ин- тентов и задач.
RemoteControl — в этом «игрушечном» приложении вы научитесь пользоваться стилями, графическими объектами списков состояний и другими инструментами, предназначенными для создания привлекательных пользовательских интерфейсов.
PhotoGallery — клиент Flickr для загрузки и отображения фотографий из обще- доступной базы Flickr. Приложение демонстрирует работу со службами, многопо- точное программирование, обращения к веб-службам и т. д.
DragAndDraw — в этом простом графическом приложении рассматривается об- работка событий касания и создание нестандартных представлений.
RunTracker — приложение позволяет отслеживать перемещения и отображать их на карте. Вы научитесь пользоваться сервисом геопозиционирования, базами данных
SQLite, загрузчиками и картами.
Упражнения
Многие главы завершаются разделом с упражнениями. Это ваша возможность применить полученные знания, покопаться в документации и отработать навыки самостоятельного решения задач.
Мы настоятельно рекомендуем выполнять упражнения. Возможность сойти с про- торенного пути и найти собственный путь закрепит учебный материал и придаст вам уверенности в работе над собственными проектами.
Если же вы окажетесь в тупике, вы всегда сможете обратиться за помощью на форум
forums.bignerdranch.com
А вы любознательны?
В конце многих глав также имеются разделы «Для любознательных». В них при- водятся углубленные объяснения или дополнительная информация по темам, представленным в главе. Содержимое этих разделов не является абсолютно необ- ходимым, но мы надеемся, что оно покажется вам интересным и полезным.

Необходимые инструменты
21
Стиль программирования
Существуют три ключевых момента, в которых наши решения отличаются от по- всеместно встречающихся в сообществе Android.
Мы используем анонимные классы для слушателей
. В основном это дело вкуса. На наш взгляд, код получается более стройным. Реализация метода слушателя разме- щается непосредственно там, где вы хотите ее видеть. В высокопроизводительных приложениях анонимные внутренние классы могут создать проблемы, но в боль- шинстве случаев они работают нормально.
После знакомства с фрагментами в главе 7 мы используем их во всех пользователь-
ских интерфейсах
. Мы твердо убеждены в правильности этого выбора. Многие
Android-разработчики продолжают писать код на базе активностей, но мы считаем эту практику сомнительной. Когда вы освоитесь с фрагментами, работать с ними несложно. Фрагменты имеют очевидные преимущества перед активностями, вклю- чая гибкость при построении и представлении пользовательских интерфейсов, так что дело того стоит.
Мы пишем приложения, совместимые с устройствами Gingerbread и Froyo
. Плат- форма Android изменилась с появлением версий Ice Cream Sandwich и Jelly Bean, а скоро еще и Key Lime Pie. Однако истина заключается в том, что на половине устройств продолжают использоваться версии Froyo и Gingerbread. (Различия между версиями Android с «вкусными» названиями рассматриваются в главе 6.)
По этой причине мы намеренно проведем вас через все сложности, связанные с на- писанием приложений, совместимых с Froyo или по крайней мере Gingerbread.
Если сразу начать с последней платформы, то учить, обучать и программировать для Android становится проще. Но мы хотели, чтобы вы умели разрабатывать приложения для реального мира, в котором телефоны на базе Gingerbread все еще составляют более 40 % устройств.
Необходимые инструменты
Пакет ADT Bundle
Прежде всего вам понадобится пакет ADT (Android Developer Tools) Bundle. Он включает в себя:

Eclipse — интегрированная среда разработки для Android. Поскольку среда
Eclipse также написана на Java, ее можно установить на PC, Mac или компью- тер с системой Linux. Пользовательский интерфейс Eclipse следует «родным» стандартам пользовательского интерфейса вашей машины, поэтому вид экрана может несколько отличаться от снимков, приведенных в книге.

Android Developer Tools — плагин для Eclipse. В книге используется ADT версии 21.1. Проследите за тем, чтобы у вас была установлена эта или более новая версия.

Android SDK — последняя версия Android SDK.

22
Изучение Android

Инструменты и платформенные средства Android SDK — средства отладки и тестирования приложений.

Образ системы для эмулятора Android — позволяет создавать и тестировать приложения на различных виртуальных устройствах.
Загрузка и установка
Пакет ADT Bundle доступен на сайте разработчиков Android в виде одного zip-файла.
1. Загрузите пакет по адресу https://developer.android.com/sdk/index.html.
2. Распакуйте zip-файл в тот каталог, в котором вы хотите установить Eclipse и другие инструменты.
3. В распакованных файлах найдите и откройте каталог eclipse и запустите Eclipse.
Если вы работаете в системе Windows и среда Eclipse не запускается, возможно, вам следует установить пакет Java Development Kit ( JDK6), который можно загрузить на сайте www.oracle.com.
Если у вас все равно остаются проблемы, обратитесь по адресу https://developer.
android.com/sdk/index.html
за дополнительной информацией.
Загрузка старых версий SDK
Пакет ADT Bundle предоставляет SDK и образ эмулируемой системы для последней платформы. Однако для тестирования приложений в более ранних версиях Android вам могут понадобиться другие платформы.
Компоненты любой платформы можно получить при помощи Android SDK Manager.
В Eclipse выполните команду
Window

Android
SDK
Manager
Для каждой версии, начиная с Android 2.2 (Froyo), мы рекомендуем выбрать и установить:

SDK Platform;

системный образ для эмулятора;

Google API.
Учтите, что загрузка этих компонентов может потребовать времени.
Android SDK Manager также используется для загрузки новейших выпусков An- droid — например, новой платформы или обновленных версий инструментов.

От издательства
23
Рис. Android SDK Manager
Физическое устройство
Эмулятор удобен для тестирования приложений. Тем не менее также полезно иметь реальное устройство на базе Android для тестирования приложений. Скажем, по- следнее приложение в книге на эмуляторе работать не будет.
От издательства
Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты comp@piter.com
(издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства https://www.piter.com вы найдете подробную информацию о наших книгах.

Первое приложение
Android
В первой главе представлено множество новых концепций и составляющих, не- обходимых для построения приложений Android. Не беспокойтесь, если к концу главы что-то останется непонятным — это нормально. Мы еще вернемся к этим концепциям в дальнейших главах и рассмотрим их более подробно.
Приложение, которое мы построим, называется
GeoQuiz. Оно проверяет, насколько хорошо пользователь знает географию. Пользователь от- вечает на вопрос, нажимая кнопку
True или
False
, а GeoQuiz мгновенно сообщает ему результат.
На рис. 1.1 показан результат нажатия кнопки
False
Основы построения
приложения
Приложение GeoQuiz состоит из активности
(activity) и макета (layout):

Активность представлена экземпляром
Ac- tivity
— класса из Android SDK. Она отвечает за взаимодействие пользователя с информацией на экране.
Чтобы реализовать функциональность, необ- ходимую вашему приложению, разработчик
Рис. 1.1. Стамбул, а не
Константинополь
1

Создание проекта Android
25
пишет субклассы
Activity
. В простом приложении бывает достаточно одного субкласса; в сложном приложении может потребоваться несколько.
GeoQuiz — простое приложение, поэтому в нем используется всего один субкласс
Activity с именем
QuizActivity
. Класс
QuizActivity управляет пользователь- ским интерфейсом, изображенным на рис. 1.1.

Макет определяет набор объектов пользовательского интерфейса и их распо- ложение на экране. Макет формируется из определений, написанных на языке
XML. Каждое определение используется для создания объекта, выводимого на экране (например, кнопки или текста).
Приложение GeoQuiz включает файл макета с именем activity_quiz.xml
. Разметка
XML в этом файле определяет пользовательский интерфейс, изображенный на рис. 1.1.
Отношения между
QuizActivity и activity_quiz.xml изображены на рис. 1.2.
Рис. 1.2. QuizActivity управляет интерфейсом, определяемым в файле activity_quiz.xml
Учитывая все сказанное, давайте построим приложение.
Создание проекта Android
Работа начинается с создания проекта Android. Проект Android содержит файлы, из которых состоит приложение. Чтобы создать новый проект, откройте Eclipse и выполните команду
File

New

Android
Application
Project
, чтобы запустить мастера нового приложения.
В первом диалоговом окне введите имя приложения
GeoQuiz
(рис. 1.3). Имя проекта автоматически обновляется в соответствии с именем приложения. В поле
Package
Name введите имя пакета com.bignerdranch.android.geoquiz
Обратите внимание: во введенном имени пакета используется схема «обратного
DNS», согласно которой доменное имя вашей организации записывается в обрат- ном порядке с присоединением суффиксов дополнительных идентификаторов. Эта схема обеспечивает уникальность имен пакетов и позволяет различать приложения на устройстве и в Google Play.
Следующие четыре поля настраивают ваше приложение для работы с разными версиями Android. Для приложения GeoQuiz достаточно настроек по умолчанию,

26
1   2   3   4   5   6   7   8   9   ...   55

перейти в каталог файлов

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей