Android 3 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов
Сатия Коматинени, Дэйв Маклин, Саид Хашими
Эта книга посвящена построению реальных мобильных приложений с использованием новой версии Android 3.0 SDK. В ней раскрываются все аспекты, начиная с основ создания приложений для встроенных устройств, телефонов и планшетных ПК и заканчивая расширенными концепциями, такими как построение трехмерных компонентов и реализация многозадачности. Кроме того, вы научитесь работать с картами, реализовывать средства поиска, использовать виджеты домашнего экрана и ActionBar.
Благодаря этому руководству и многочисленным советам экспертов, вы быстро научитесь создавать современные мобильные приложения и запускать их на десятках основанных на платформе Android смартфонов. Вы освоите множество API-интерфейсов Android, включая интерфейсы, которые предназначены для работы с медиа и датчиками. Вы ознакомитесь с новыми возможностями Android 3.0, в числе которых улучшенный пользовательский интерфейс для всех платформ Android, интеграция с WebM и многое другое, и обретете знания, которые помогут строить великолепные передовые приложения и быстро реагировать на изменения в будущем.
В книге рассматриваются следующие темы
- Как использовать Android для построения мобильных Java-приложений для телефонов Google с сенсорными экранами или клавиатурами
- Как спроектировать и реализовать неотразимые пользовательские интерфейсы для сенсорных экранов с помощью представлений и компоновок
- Как заполнить приложение данными из источников данных с использованием поставщиков контента
- Как создавать трехмерную графику с помощью OpenGL и специальных компонентов
- Как построить мультимедиа- и игровые приложения с применением Media API и OpenGL из Android
- Как использовать службы, основанные на местоположении, сетевые службы и средства безопасности
- Как использовать новые средства Android 3.0, такие как фрагменты и ActionBar
Книга рассчитана на профессиональных разработчиков программного обеспечения, стремящихся перенести свои знания и приложения в мобильный мир Android. Предполагается наличие хороших знаний языка Java, включая умение создавать классы и работать с базовыми структурами наследования.
Издательство: Вильямс, 2012 г.
ISBN 978-5-8459-1746-1
Количество страниц: 1024.
Содержание книги «Android 3 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов»:
- 21 Вступление
- 22 Об авторах
- 22 О техническом рецензенте
- 23 Благодарности
- 23 Предисловие
- 24 От издательства
- 25 Глава 1. Введение в вычислительную платформу Android
- 25 Новая платформа для нового персонального компьютера
- 27 История Android
- 29 Знакомство с Dalvik VM
- 30 Стек программ Android
- 31 Разработка приложений для конечных пользователей с помощью Android SDK
- 31 Эмулятор Android
- 32 Пользовательский интерфейс Android
- 33 Основные компоненты Android
- 34 Более сложные концепции пользовательского интерфейса
- 36 Компоненты служб Android
- 36 Компоненты Android для работы с носителями и телефонией
- 37 Java-пакеты для Android
- 40 Использование исходного кода Android
- 41 Примеры проектов для настоящей книги
- 41 Резюме
- 42 Глава 2. Настройка среды разработки
- 42 Настройка среды
- 43 Загрузка JDK 6
- 44 Загрузка Eclipse 3.6
- 44 Загрузка Android SDK
- 45 Изменение переменной среды PATH
- 46 Окно инструментов
- 46 Установка Android Development Tools (ADT)
- 48 Основные компоненты
- 48 Представление
- 48 Действие
- 49 Намерение
- 49 Поставщик контента
- 49 Служба
- 49 Файл AndroidManifest.xml
- 50 Виртуальные устройства Android
- 50 Приложение «Hello World!»
- 55 Виртуальные устройства Android
- 56 Структура Android-приложения
- 58 Приложение Notepad
- 58 Загрузка и выполнение приложения Notepad
- 59 Анализ приложения
- 65 Жизненный цикл Android-приложения
- 68 Отладка приложения
- 70 Запуск эмулятора
- 71 Режим StrictMode
- 75 Ссылки
- 75 Резюме
- 42 Настройка среды
- 76 Глава 3. Ресурсы Android
- 76 Понятие ресурсов
- 76 Строковые ресурсы
- 78 Ресурсы компоновки
- 80 Синтаксис ссылок на ресурсы
- 81 Определение собственных идентификаторов ресурсов для дальнейшего использования
- 82 Компилированные и не компилированные ресурсы Android
- 83 Перечисление основных ресурсов Android
- 85 Строковые массивы
- 86 Множественные числа
- 87 Еще о строковых ресурсах
- 88 Цветовые ресурсы
- 89 Ресурсы размеров
- 90 Ресурсы изображений
- 91 Ресурсы цветных фигур
- 93 Работа с произвольными ресурсными XML-файлами
- 94 Необработанные ресурсы
- 95 Работа с активами
- 95 Обзор структуры ресурсных каталогов
- 96 Ресурсы и изменения конфигурации
- 99 Ссылки
- 99 Резюме
- 76 Понятие ресурсов
- 100 Глава 4. Поставщики контента
- 101 Знакомство с поставщиками, встроенными в Android
- 102 Базы данных на эмуляторе и доступных устройствах
- 105 Небольшое введение в SQLite
- 106 Архитектура поставщиков контента
- 107 Структура URI контента в Android
- 108 Структура MIME-типов в Android
- 109 Чтение данных с помощью URI
- 112 Использование курсора Android
- 113 Работа с конструкцией where
- 115 Вставка записей
- 116 Добавление файла к поставщику контента
- 116 Изменения и удаления
- 117 Реализация поставщиков контента
- 117 Планирование базы данных
- 119 Расширение класса ContentProvider
- 124 Обеспечение контрактов MIME-типов
- 124 Реализация метода query
- 125 Реализация метода insert
- 125 Реализация метода update
- 125 Реализация метода delete
- 125 Определение URI с помощью класса UriMatcher
- 127 Использование карт проекций
- 127 Регистрация поставщика
- 127 Использование поставщика книг
- 128 Добавление книги
- 128 Удаление книги
- 129 Получение количества книг
- 129 Вывод списка книг
- 130 Ссылки
- 130 Резюме
- 101 Знакомство с поставщиками, встроенными в Android
- 131 Глава 5. Намерения
- 131 Понятие намерений в Android
- 132 Намерения, доступные в Android
- 134 Знакомство со структурой намерения
- 135 Намерения и URI данных
- 135 Обобщенные операции
- 136 Использование дополнительной информации
- 138 Непосредственный вызов действия с помощью компонентов
- 139 Категории намерений
- 141 Правила для определения соответствия намерений и их компонентов
- 143 Действие ACTION_PICK
- 146 Операция GET_CONTENT
- 147 Отложенные намерения
- 148 Ссылки
- 148 Резюме
- 149 Глава 6. Создание пользовательских интерфейсов и использование графических элементов
- 149 Разработка пользовательского интерфейса в Android
- 151 Создание пользовательского интерфейса полностью в коде
- 153 Создание пользовательского интерфейса полностью в XML
- 154 Создание пользовательского интерфейса в XML с кодом
- 155 FILL_PARENT и MATCH_PARENT
- 155 Распространенные элементы управления Android
- 156 Текстовые элементы
- 159 Кнопочные элементы управления
- 166 Элемент ImageView
- 167 Элементы указания даты и времени
- 169 Элемент MapView
- 170 Адаптеры
- 171 Знакомство с SimpleCursorAdapter
- 172 Знакомство с ArrayAdapter
- 174 Использование адаптеров с элементами AdapterView
- 174 Простейший элемент работы со списками – ListView
- 182 Элемент GridView
- 183 Элемент Spinner
- 185 Элемент Gallery
- 185 Создание собственных адаптеров
- 190 Другие элементы управления Android
- 191 Стили и темы
- 191 Использование стилей
- 193 Использование тем
- 194 Диспетчеры компоновки
- 194 Диспетчер компоновки LinearLayout
- 197 Диспетчер компоновки TableLayout
- 201 Диспетчер компоновки RelativeLayout
- 202 Диспетчер компоновки FrameLayout
- 204 Настройка компоновки для различных конфигураций устройства
- 206 Отладка и оптимизация компоновок с помощью Hierarchy Viewer
- 209 Ссылки
- 209 Резюме
- 149 Разработка пользовательского интерфейса в Android
- 210 Глава 7. Работа с меню
- 210 Меню в Android
- 211 Создание меню
- 212 Работа с группами меню
- 213 Реагирование на выбор пунктов меню
- 213 Реагирование на выбор пунктов меню с помощью метода onOptionsItemSelected
- 214 Реагирование на выбор пунктов меню с помощью слушателей
- 214 Реагирование на выбор пунктов меню с помощью намерения
- 215 Создание тестовой оснастки для опробования меню
- 216 Создание XML-компоновки
- 216 Создание действия
- 217 Создание меню
- 217 Добавление обычных пунктов меню
- 218 Добавление вторичных пунктов
- 218 Реагирование на щелчки на пунктах меню
- 220 Корректировка файла AndroidManifest.xml
- 221 Работа с другими видами меню
- 221 Расширенные меню
- 221 Меню со значками
- 222 Работа с подменю
- 222 Добавление системных меню
- 223 Работа с контекстными меню
- 226 Работа с альтернативными меню
- 229 Работа с меню в ответ на изменение данных
- 229 Загрузка меню из XML-файлов
- 229 Структура ресурсного XML-файла меню
- 230 Распаковка ресурсных XML-файлов меню
- 231 Реагирование на пункты меню, созданных из XML
- 232 Краткое введение в дополнительные XML-дескрипторы меню
- 233 Ссылки
- 233 Резюме
- 210 Меню в Android
- 234 Глава 8. Работа с диалоговыми окнами
- 234 Использование диалоговых окон в Android
- 234 Проектирование диалогового окна оповещения
- 236 Создание диалогового окна приглашения
- 241 Природа диалоговых окон в Android
- 241 Переделка диалогового окна приглашения
- 242 Работа с управляемыми диалоговыми окнами
- 242 Протокол управляемых диалоговых окон
- 243 Переделка неуправляемого диалогового окна в управляемое
- 244 Упрощение протокола управляемых диалоговых окон
- 252 Работа с Toast
- 252 Ссылки
- 253 Резюме
- 234 Использование диалоговых окон в Android
- 254 Глава 9. Работа с предпочтениями и сохранение состояния
- 254 Знакомство со средой настроек
- 254 Элемент ListPreference
- 263 Элемент CheckBoxPreference
- 265 Элемент EditTextPreference
- 266 Элемент RingtonePreference
- 268 Организация настроек
- 270 Программная работа с настройками
- 271 Сохранение состояния с помощью настроек
- 272 Ссылки
- 272 Резюме
- 254 Знакомство со средой настроек
- 273 Глава 10. Безопасность и права доступа
- 273 Знакомство с моделью безопасности в Android
- 273 Обзор концепций безопасности
- 274 Подписание приложений для развертывания
- 279 Проверки безопасности во время выполнения
- 280 Защита на границах процессов
- 280 Объявление и использование прав доступа
- 281 Специальные права доступа и их использование
- 287 Права доступа к URI и их применение
- 289 Ссылки
- 289 Резюме
- 273 Знакомство с моделью безопасности в Android
- 290 Глава 11. Построение и использование служб
- 290 Потребление HTTP-служб
- 291 Использование HttpClient для HTTP-запросов GET
- 292 Использование HttpClient для HTTP-запросов POST (пример многоэлементного запроса)
- 295 Анализаторы SOAP, JSON и XML
- 296 Обработка исключений
- 298 Проблемы, связанные с многопоточностью
- 300 Обработка тайм-аутов
- 301 Использование HttpURLConnection
- 301 Использование AndroidHttpClient
- 303 Использование фоновых потоков (AsyncTask)
- 308 Обработка изменений в конфигурации в AsyncTask
- 313 Получение файлов с использованием DownloadManager
- 318 Использование служб Android
- 318 Что собой представляют службы в Android
- 319 Что собой представляют локальные службы
- 326 Что собой представляют службы AIDL
- 326 Определение интерфейса службы в AIDL
- 329 Реализация AIDL-интерфейса
- 331 Вызов службы из клиентского приложения
- 335 Передача составных типов службе
- 344 Реальный пример использования служб
- 344 Google Translate API
- 345 Использование Google Translate API
- 353 Ссылки
- 353 Резюме
- 290 Потребление HTTP-служб
- 354 Глава 12. Исследование пакетов
- 354 Пакеты и процессы
- 354 Детали спецификации пакета
- 355 Трансляция имени пакета в имя процесса
- 355 Вывод списка установленных пакетов
- 356 Удаление пакета с помощью браузера пакетов
- 356 Еще раз о процессе подписания пакетов
- 356 Цифровые подписи: сценарий 1
- 357 Цифровые подписи: сценарий 2
- 357 Шаблон для понимания цифровых подписей
- 357 Как создать цифровую подпись?
- 358 Последствия процесса подписания
- 358 Разделение данных между пакетами
- 359 Природа разделяемых идентификаторов пользователей
- 359 Шаблон кода для разделения данных
- 360 Библиотечные проекты
- 361 Что собой представляет библиотечный проект?
- 361 Особенности библиотечных проектов
- 363 Создание библиотечного проекта
- 366 Создание проекта Android, который использует библиотечный проект
- 371 Ссылки
- 371 Резюме
- 354 Пакеты и процессы
- 372 Глава 13. Исследование обработчиков
- 372 Компоненты и потоки Android
- 373 Действия выполняются в главном потоке
- 373 Широковещательные приемники выполняются в главном потоке
- 374 Службы выполняются в главном потоке
- 374 Поставщик контента выполняется в главном потоке
- 374 Последствия наличия единственного главного потока
- 374 Пулы потоков, поставщики контента и компоненты внешних служб
- 374 Потоковые утилиты: исследование потоков
- 375 Обработчики
- 377 Последствия удержания главного потока
- 377 Использование обработчика для откладывания работы в главном потоке
- 378 Пример исходного кода обработчика, который откладывает работу
- 379 Конструирование подходящего объекта сообщения
- 380 Отправка объектов сообщений в очередь
- 380 Реагирование на обратный вызов handleMessage()
- 381 Использование рабочих потоков
- 381 Активизация рабочего потока из меню
- 382 Взаимодействие между рабочим и главным потоками
- 382 Реализация WorkerThreadRunnable
- 384 Реализация ReportStatusHandler
- 385 Краткий обзор поведения потока
- 385 Классы примера обработчиков управляющего действия
- 386 Файл с управляющим действием
- 389 Файл компоновки
- 389 Файл меню
- 389 Файл манифеста
- 390 Время жизни компонентов и процессов
- 390 Жизненный цикл действия
- 391 Жизненный цикл службы
- 392 Жизненный цикл приемника
- 392 Жизненный цикл поставщика
- 393 Инструкции по компиляции кода
- 393 Создание проекта из ZIP-файла
- 393 Создание проектов из листингов
- 394 Ссылки
- 394 Резюме
- 395 Глава 14. Широковещательные приемники и длительно выполняющиеся службы
- 395 Широковещательные приемники
- 396 Отправка широковещательных рассылок
- 396 Кодирование простого приемника: пример кода
- 398 Регистрация приемника в файле манифеста
- 398 Отправка тестовой широковещательной рассылки
- 401 Использование нескольких приемников
- 403 Проект для внепроцессных приемников
- 404 Использование уведомлений, поступающих от приемника
- 404 Отслеживание уведомлений с помощью диспетчера уведомлений
- 405 Отправка уведомления
- 408 Длительно выполняющиеся приемники и службы
- 408 Протокол длительно выполняющегося широковещательного приемника
- 409 Служба IntentService
- 410 Исходный код IntentService
- 412 Расширение IntentService для широковещательного приемника
- 413 Абстракция длительно выполняющейся широковещательной службы
- 415 Длительно выполняющийся приемник
- 417 Абстрагирование блокировки пробуждения с помощью LightedGreenRoom
- 418 Освещенная зеленая комната
- 418 Реализация освещенной зеленой комнаты
- 423 Реализация длительно выполняющейся службы
- 423 Детали, связанные с nonsticky-службами
- 424 Детали, связанные со sticky-службами
- 424 Разновидность nonsticky-служб: повторная доставка намерений
- 424 Указание флагов службы в OnStartCommand
- 425 Выбор подходящего режима службы
- 425 Управление блокировкой пробуждения из двух мест
- 425 Реализация длительно выполняющейся службы
- 427 Тестирование длительно выполняющихся служб
- 428 Инструкции по компиляции кода
- 428 Создание проектов из ZIP-файла
- 428 Создание проектов из листингов
- 430 Ссылки
- 431 Резюме
- 395 Широковещательные приемники
- 432 Глава 15. Исследование диспетчера оповещений
- 432 Основы диспетчера оповещений: установка простого оповещения
- 432 Получение доступа к диспетчеру оповещений
- 433 Установка времени оповещения
- 434 Установка приемника для оповещения
- 434 Создание намерения PendingIntent, соответствующего оповещению
- 435 Установка оповещения
- 436 Тестовый проект
- 442 Альтернативные сценарии с диспетчером оповещений
- 442 Повторная установка оповещения
- 444 Компиляция кода примера
- 444 Отмена оповещения
- 446 Компиляция кода примера
- 446 Работа с несколькими оповещениями
- 449 Компиляция кода примера
- 450 Приоритетность намерения при установке оповещений
- 451 Компиляция кода примера
- 453 Постоянство оповещений
- 453 Основные факты, связанные с диспетчером оповещений
- 454 Ссылки
- 454 Резюме
- 432 Основы диспетчера оповещений: установка простого оповещения
- 455 Глава 16. Исследование двухмерной анимации
- 456 Покадровая анимация
- 456 Планирование покадровой анимации
- 457 Создание действия
- 458 Добавление анимации к действию
- 461 Анимация компоновки
- 461 Базовые типы анимации с построением промежуточных кадров
- 462 Планирование теста анимации компоновки
- 463 Создание действия и ListView
- 464 Анимация ListView
- 468 Использование интерполяторов
- 470 Анимация представления
- 470 Суть анимации представления
- 472 Добавление анимации
- 476 Использование камеры для имитации глубины в двухмерном пространстве
- 477 Исследование класса AnimationListener
- 478 Некоторые замечания о трансформации матриц
- 479 Ссылки
- 479 Резюме
- 456 Покадровая анимация
- 480 Глава 17. Исследование карт и служб местоположения
- 481 Что такое пакет картографии
- 481 Получение ключа map-api от Google
- 482 Классы MapView и MapActivity
- 492 Пакет location
- 492 Геокодирование в Android
- 505 Отображение местоположения с использованием MyLocationOverlay
- 509 Использование сигналов о приближении
- 513 Ссылки
- 513 Резюме
- 481 Что такое пакет картографии
- 514 Глава 18. Использование API-интерфейсов телефонии
- 514 Работа с SMS
- 514 Отправка SMS-сообщений
- 517 Мониторинг входящих SMS-сообщений
- 520 Работа с папками SMS
- 521 Отправка электронной почты
- 522 Работа с диспетчером телефонии
- 525 Протокол установления сеанса (SIP)
- 527 Ссылки
- 527 Резюме
- 514 Работа с SMS
- 528 Глава 19. Платформы для работы с медиа
- 528 Использование API-интерфейсов для работы с медиа
- 528 Использование SD-карт
- 533 Воспроизведение медиа-контента
- 533 Воспроизведение аудиоконтента
- 537 Метод setDataSource
- 538 Использование SoundPool для одновременного воспроизведения треков
- 542 Воспроизведение звуков с помощью JetPlayer
- 542 Воспроизведение фоновых звуков с помощью AsyncPlayer
- 543 Низкоуровневое воспроизведение аудио с использованием AudioTrack
- 543 Особенности MediaPlayer
- 544 Воспроизведение видеоконтента
- 546 Запись медиаконтента
- 546 Аудиозапись с помощью MediaRecorder
- 550 Аудиозапись с помощью AudioRecord
- 554 Видеозапись
- 563 Класс MediaStore
- 564 Запись аудио с использованием намерения
- 567 Добавление медиаконтента в хранилище медиа
- 569 Запуск MediaScanner для всей SD-карты
- 569 Ссылки
- 570 Резюме
- 528 Использование API-интерфейсов для работы с медиа
- 571 Глава 20. Программирование трехмерной графики с помощью OpenGL
- 572 История появления и основы OpenGL
- 573 Стандарт OpenGL ES
- 573 OpenGL ES и Java ME
- 574 M3G: еще один стандарт трехмерной графики Java ME
- 574 Основы OpenGL
- 575 Рисование с помощью OpenGL ES
- 576 glVertexPointer и указание вершин для рисования
- 580 Камера и координаты OpenGL
- 584 Взаимодействие OpenGL ES с Android
- 584 Использование GLSurfaceView и связанных классов
- 584 Реализация интерфейса Renderer
- 587 Использование GLSurfaceView внутри действия
- 592 Изменение настроек камеры
- 593 Использование индексов для добавления еще одного треугольника
- 595 Анимация простого треугольника OpenGL
- 597 Формы и текстуры OpenGL
- 597 Рисование прямоугольника
- 598 Работа с фигурами
- 610 Работа с текстурами
- 611 Абстрагирование общей обработки текстур
- 614 Рисование множества фигур
- 618 OpenGL ES 2.0
- 618 Java-привязки для OpenGL ES 2.0
- 621 Шаги визуализации
- 622 Построители текстур
- 623 Компиляция построителей текстур в программу
- 625 Получение доступа к переменным программы построителя текстуры
- 625 Простой треугольник ES 2.0
- 629 Дополнительные сведения по OpenGL ES 2.0
- 629 Инструкции по компиляции кода
- 629 Ссылки
- 630 Резюме
- 631 Глава 21. Исследование живых папок
- 631 Знакомство с живыми папками
- 632 Живые папки с точки зрения пользователя
- 635 Построение живой папки
- 645 Инструкции по компиляции кода
- 645 Ссылки
- 645 Резюме
- 631 Знакомство с живыми папками
- 646 Глава 22. Виджеты домашнего экрана
- 647 Архитектура виджетов домашнего экрана
- 647 Что собой представляют виджеты домашнего экрана?
- 647 Виджеты домашнего экрана с точки зрения пользователя
- 650 Жизненный цикл виджета
- 655 Пример приложения с виджетом
- 656 Определение поставщика виджета
- 658 Файлы, относящиеся к компоновке виджета
- 660 Реализация поставщика виджета
- 663 Реализация моделей виджетов
- 673 Ограничения и расширения виджетов
- 674 Ссылки
- 674 Резюме
- 647 Архитектура виджетов домашнего экрана
- 675 Глава 23. Поиск в Android
- 675 Средства поиска в Android
- 676 Глобальный поиск в Android
- 680 Включение поставщиков подсказок для глобального поиска
- 682 Действия и связь с клавишей поиска
- 683 Поведение клавиши поиска в обычном действии
- 690 Поведение действия, отключившего поиск
- 691 Явный вызов поиска через меню
- 694 Локальный поиск и связанные с ним действия
- 699 Включение режима type-to-search
- 700 Реализация простого поставщика подсказок
- 701 Планирование простого поставщика подсказок
- 701 Файлы реализации простого поставщика подсказок
- 702 Реализация класса SimpleSuggestionProvider
- 705 Поисковое действие простого поставщика подсказок
- 710 Действие, вызывающее поиск
- 711 Пользовательский интерфейс простого поставщика подсказок
- 714 Реализация специального поставщика подсказок
- 714 Планирование специального поставщика подсказок
- 714 Файлы реализации проекта поставщика SuggestionURLProvider
- 715 Реализация класса SuggestUrlProvider
- 729 Файл манифеста для специального поставщика подсказок
- 730 Пользовательский интерфейс специальных подсказок
- 732 Использование клавиш операций и специфичных для приложения поисковых данных
- 732 Использование клавиш операций в поиске Android
- 735 Работа с поисковым контекстом, специфичным для приложения
- 736 Ссылки
- 737 Адаптации для планшетов
- 737 Резюме
- 675 Средства поиска в Android
- 738 Глава 24. Исследование API-интерфейса TextToSpeech
- 738 Основы средств речевого воспроизведения в Android
- 742 Использование фрагментов для отслеживания речи
- 744 Использование звуковых файлов для голосового воспроизведения
- 750 Расширенные средства механизма TTS
- 750 Настройка аудиопотоков
- 751 Использование звуковых значков
- 752 Воспроизведение тишины
- 752 Выбор другого механизма речевого воспроизведения
- 752 Использование методов для работы с другими языками
- 754 Ссылки
- 754 Резюме
- 755 Глава 25. Сенсорные экраны
- 755 События, связанные с перемещением
- 755 Объект MotionEvent
- 766 Удаление MotionEvent
- 767 Использование класса VelocityTracker
- 769 Исследование перетаскивания
- 771 Функция мультитач
- 772 Мультитач до Android 2.2
- 779 Мультитач после Android 2.2
- 780 Касания и карты
- 782 Жесты
- 783 Жест сдвигания/раздвигания пальцев
- 786 Класс GestureDetector и интерфейс OnGestureListener
- 789 Специальные жесты
- 789 Приложение Gestures Builder
- 796 Ссылки
- 796 Резюме
- 755 События, связанные с перемещением
- 797 Глава 26. Использование датчиков
- 797 Что такое датчик?
- 798 Обнаружение датчиков
- 798 Какие сведения можно получить о датчике?
- 800 Получение событий датчика
- 803 Проблемы с получением данных от датчиков
- 803 Метод onAccuracyChanged() все время сообщает одно и то же
- 803 Отсутствует прямой доступ к значениям датчиков
- 803 Значения датчика не отправляются достаточно быстро
- 803 В версии Android 2.1 датчики выключаются вместе с экраном
- 809 Интерпретация данных от датчиков
- 810 Датчики освещенности
- 810 Датчики приближения
- 811 Датчики температуры
- 811 Датчики давления
- 811 Датчики типа гироскопов
- 812 Акселерометры
- 817 Датчики магнитного поля
- 818 Совместное использование акселерометров и датчиков магнитного поля
- 818 Датчики ориентации
- 824 Магнитное склонение и GeomagneticField
- 825 Датчик гравитации
- 825 Датчики линейного ускорения
- 825 Датчики вектора поворота
- 825 Датчики NFC
- 836 Ссылки
- 836 Резюме
- 797 Что такое датчик?
- 837 Глава 27. Исследование API-интерфейса для работы с контактами
- 838 Учетные записи
- 838 Краткий тур по экранам, связанным с учетными записями
- 839 Отношения между учетными записями и контактами
- 840 Перечисление учетных записей
- 841 Освоение приложения Contacts
- 841 Просмотр контактов
- 841 Просмотр деталей контакта
- 841 Редактирование деталей контакта
- 842 Установка фотографии для контакта
- 844 Экспорт контактов
- 845 Различные типы данных контактов
- 846 Что собой представляют контакты
- 846 Исследование баз данных контактов SQLite
- 847 Низкоуровневые контакты
- 848 Таблица данных
- 849 Агрегированные контакты
- 851 Представление view_contacts
- 852 Представление contact_entities_view
- 853 Работа с API-интерфейсом контактов
- 853 Просмотр учетных записей
- 854 Файл меню
- 854 Файлы тестера функций для учетных записей
- 856 Классы, связанные с управляющим действием
- 859 Запуск программы на выполнение
- 860 Просмотр агрегированных контактов
- 868 Просмотр низкоуровневых контактов
- 873 Просмотр данных низкоуровневого контакта
- 877 Добавление контакта и его деталей
- 879 Управление агрегированием
- 880 Влияние синхронизации
- 881 Ссылки
- 881 Резюме
- 838 Учетные записи
- 882 Глава 28. Развертывание готового приложения: Android Market и другие возможности
- 883 Как стать издателем
- 883 Следование правилам
- 886 Консоль разработчика
- 889 Подготовка приложения к продаже
- 889 Тестирование на различных устройствах
- 889 Поддержка экранов разных размеров
- 890 Подготовка файла AndroidManifest.xml к загрузке
- 891 Локализация приложения
- 891 Подготовка значка приложения
- 892 Соображения по поводу того, как зарабатывать на приложениях
- 893 Перенаправление пользователей обратно на Android Market
- 893 Служба лицензирования Android
- 894 Подготовка файла .apk для загрузки
- 895 Загрузка приложения
- 898 Пользовательский интерфейс Android Market
- 899 Другие возможности, отличные от Android Market
- 900 Ссылки
- 900 Резюме
- 883 Как стать издателем
- 901 Глава 29. Фрагменты для планшетов и других устройств
- 901 Что собой представляет фрагмент?
- 903 Когда использовать фрагменты
- 903 Структура фрагмента
- 904 Жизненный цикл фрагмента
- 906 Обратный вызов onInflate()
- 906 Обратный вызов onAttach()
- 906 Обратный вызов onCreate()
- 907 Обратный вызов onCreateView()
- 908 Обратный вызов onActivityCreated()
- 908 Обратный вызов onStart()
- 908 Обратный вызов onResume()
- 908 Обратный вызов onPause()
- 908 Обратный вызов onStop()
- 909 Обратный вызов onDestroyView()
- 909 Обратный вызов onDestroy()
- 909 Обратный вызов onDetach()
- 909 Использование setRetainInstance()
- 910 Пример приложения, использующего фрагмент, для демонстрации жизненного цикла
- 918 Класс FragmentTransaction и стек возврата фрагментов
- 919 Переходы и анимации транзакций фрагментов
- 921 Класс FragmentManager
- 922 Предостережение относительно ссылок на фрагменты
- 923 ListFragment и <fragment>
- 926 Вызов отдельного действия при необходимости
- 929 Постоянство фрагментов
- 929 Понимание фрагментов диалоговых окон
- 930 Основы DialogFragment
- 930 Создание фрагмента диалогового окна
- 932 Отображение фрагмента диалогового окна
- 933 Освобождение фрагмента диалогового окна
- 934 Сложности, связанные с освобождением диалогового окна
- 935 Пример приложения DialogFragment
- 935 Пример диалогового окна: MainActivity
- 938 Пример диалогового окна: OnDialogDoneListener
- 938 Пример диалогового окна: PromptDialogFragment
- 943 Пример диалогового окна: HelpDialogFragment
- 945 Пример диалогового окна: AlertDialogFragment
- 947 Пример диалогового окна: файл главной компоновки main.xml
- 947 Дополнительные способы обмена данными с фрагментами
- 948 Использование методов startActivity() и setTargetFragment()
- 949 Реализация нестандартных анимаций с помощью класса ObjectAnimator
- 952 Ссылки
- 952 Резюме
- 953 Глава 30. Исследование API-интерфейса ActionBar
- 954 Структура интерфейса ActionBar
- 955 Действие с панелью операций с навигацией посредством вкладок
- 956 Реализация базовых классов действия
- 958 Обеспечение унифицированного поведения для ActionBar
- 960 Реализация слушателя вкладок
- 962 Реализация действия с панелью операций с вкладками
- 963 Компоновка текстового представления отладки с возможностью прокрутки
- 964 Взаимодействие панели операций и меню
- 966 Файл манифеста Android
- 967 Исследование действия TabNavigationActionBarActivity
- 967 Действие с панелью операций со списковой навигацией
- 968 Создание SpinnerAdapter
- 969 Создание слушателя списка
- 969 Настройка панели операций со списковой навигацией
- 970 Внесение изменений в BaseActionBarActivity
- 970 Внесение изменений в AndroidManifest.xml
- 971 Исследование действия ListNavigationActionBarActivity
- 972 Действие с панелью операций со стандартной навигацией
- 973 Настройка действия с панелью операций со стандартной навигацией
- 974 Внесение изменений в BaseActionBarActivity
- 974 Внесение изменений в AndroidManifest.xml
- 974 Исследование StandardNavigationActionBarActivity
- 976 Ссылки
- 976 Резюме
- 978 Глава 31. Дополнительные темы, связанные с версией Android 3.0
- 978 Списковые виджеты домашнего экрана
- 979 Новые удаленные представления в выпуске 3.0
- 980 Работа со списками в удаленных представлениях
- 982 Подготовка удаленной компоновки
- 984 Загрузка удаленной компоновки
- 985 Настройка RemoteViewsService
- 986 Настройка RemoteViewsFactory
- 990 Настройка событий onClick
- 992 Реагирование на события onClick
- 994 Работающий пример: списковый виджет домашнего экрана
- 994 Создание тестового поставщика виджетов
- 997 Создание фабрики удаленных представлений
- 999 Реализация службы удаленных представлений
- 1000 Файл основной компоновки виджета
- 1000 Компоновка для индивидуальных элементов списка
- 1000 Метаданные поставщика виджетов
- 1000 Файл AndroidManifest.xml
- 1001 Тестирование спискового виджета
- 1003 Перетаскивание
- 1003 Основы перетаскивания в выпуске 3.0
- 1004 Пример приложения с возможностями перетаскивания
- 1015 Тестирование примера приложения с возможностями перетаскивания
- 1016 Ссылки
- 1017 Резюме
- 978 Списковые виджеты домашнего экрана
- 1018 Предметный указатель
Инструкция как скачать книгу Сатия Коматинени, Дэйв Маклин, Саид Хашими: Android 3 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.