Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов
Сатия Коматинени, Дэйв Маклин
Эта книга посвящена построению реальных мобильных приложений с использованием новой версии Android SDK 4 (Ice Cream Sandwich), которая унифицирует применение Gingerbread для смартфонов, Honeycomb для планшетов и следующих дополнений, таких как Google TV и т.п.
Книга является обновлением предшествующего издания и раскрывает все аспекты, начиная с основ создания приложений для встроенных устройств, смартфонов и планшетных ПК и заканчивая расширенными концепциями, такими как построение трехмерных компонентов, реализация многозадачности, работа с датчиками, создание дополненной реальности, улучшенная поддержка виджетов домашнего экрана и многое другое.
- Используя многочисленные руководства и советы от экспертов, вы быстро научитесь создавать современные мобильные приложения и запускать их на десятках основанных на Android смартфонов.
- Вы освоите множество API-интерфейсов Android, включая интерфейсы, которые предназначены для работы с медиа и датчиками.
- Вы ознакомитесь с новыми возможностями Android 4, в числе которых улучшенный пользовательский интерфейс для всех платформ Android, интеграция со службами и т.д.
После изучения этого исчерпывающего учебного руководства вы обретете знания и опыт, которые помогут строить великолепные передовые приложения Android 4, получать от них финансовую выгоду и быстро реагировать на изменения в будущем.
В книге рассматриваются следующие темы
- Как использовать Android 4 для построения мобильных Java-приложений для смартфонов и планшетов Android
- Как проектировать и реализовать неотразимые пользовательские интерфейсы для устройств Android
- Как наполнить приложение данными из источников данных с использованием поставщиков контента
- Как строить мультимедиа- и игровые приложения с применением API-интерфейсов для работы с медиа
- Как использовать службы, основанные на местоположении, сетевые службы и средства безопасности
- Как использовать новые средства Android 4, такие как фрагменты и панели действий
Эта книга предназначена для профессиональных разработчиков программного обеспечения, стремящихся перенести свои знания и приложения в мобильный мир Android. Предполагается наличие хороших знаний языка Java, включая умение создавать классы и работать с базовыми структурами наследования.
Издательство: Вильямс, 2012 г.
ISBN 978-5-8459-1801-7
Количество страниц: 880.
Содержание книги «Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов»:
- 21 Об авторах
- 21 О технических рецензентах
- 22 Благодарности
- 23 Предисловие
- 24 От издательства
- 25 Глава 1. Введение в вычислительную платформу Android
- 25 Новая платформа для нового персонального компьютера
- 26 История Android
- 29 Знакомство с Dalvik VM
- 30 Программный стек Android
- 31 Разработка приложений для конечных пользователей с помощью Android SDK
- 32 Эмулятор Android
- 32 Пользовательский интерфейс Android
- 33 Основные компоненты Android
- 34 Более сложные концепции пользовательского интерфейса
- 37 Компоненты служб Android
- 37 Компоненты Android для работы с медиа и телефонией
- 38 Java-пакеты для Android
- 42 Использование исходного кода Android
- 42 Онлайновый просмотр исходного кода Android
- 43 Использование Git для загрузки исходного кода Android
- 44 Проекты примеров, рассмотренных в книге
- 44 Резюме
- 45 Глава 2. Настройка среды разработки
- 46 Настройка среды
- 46 Загрузка JDK 6
- 47 Загрузка Eclipse 3.6
- 47 Загрузка Android SDK
- 49 Обновление переменной среды PATH
- 49 Окно инструментов
- 49 Установка Android Development Tools (ADT)
- 52 Основные компоненты
- 52 Представление
- 52 Активность
- 52 Фрагмент
- 53 Намерение
- 53 Поставщик контента
- 53 Служба
- 53 Файл AndroidManifest.xml
- 54 Виртуальные устройства Android
- 54 Приложение «Hello World!»
- 59 Работа с виртуальными устройствами Android
- 60 Запуск на реальном устройстве
- 61 Структура Android-приложения
- 62 Жизненный цикл Android-приложения
- 64 Простая отладка приложения
- 65 Запуск эмулятора
- 66 Ссылки
- 66 Резюме
- 67 Вопросы для самоконтроля
- 46 Настройка среды
- 68 Глава 3. Ресурсы Android
- 68 Понятие ресурсов
- 68 Строковые ресурсы
- 70 Ресурсы компоновки
- 72 Синтаксис ссылок на ресурсы
- 74 Определение собственных идентификаторов ресурсов для дальнейшего использования
- 75 Компилированные и не компилированные ресурсы Android
- 76 Перечисление основных ресурсов Android
- 78 Строковые массивы
- 78 Множественные числа
- 79 Дополнительные сведения о строковых ресурсах
- 81 Цветовые ресурсы
- 82 Ресурсы размерностей
- 83 Ресурсы изображений
- 84 Ресурсы цветных фигур
- 85 Работа с произвольными XML-файлами ресурсов
- 87 Низкоуровневые ресурсы
- 87 Работа с активами
- 88 Обзор структуры каталогов ресурсов
- 88 Ресурсы и изменения конфигурации
- 92 Ссылки
- 92 Резюме
- 93 Вопросы для самоконтроля
- 68 Понятие ресурсов
- 94 Глава 4. Поставщики контента
- 95 Знакомство с поставщиками, встроенными в Android
- 95 Базы данных в эмуляторе и на доступных устройствах
- 98 Краткое введение в SQLite
- 99 Архитектура поставщиков контента
- 100 Структура URI контента в Android
- 101 Структура MIME-типов в Android
- 103 Чтение данных с использованием URI
- 104 Использование курсора Android
- 105 Работа с конструкцией where
- 107 Вставка записей
- 108 Добавление файла к поставщику контента
- 109 Обновления и удаления
- 109 Реализация поставщиков контента
- 110 Планирование базы данных
- 111 Расширение класса ContentProvider
- 117 Обеспечение контрактов MIME-типов
- 117 Реализация метода query
- 117 Реализация метода insert
- 117 Реализация метода update
- 118 Реализация метода delete
- 118 Определение URI с помощью класса UriMatcher
- 119 Использование карт проекций
- 120 Регистрация поставщика
- 120 Использование поставщика книг
- 120 Добавление книги
- 121 Удаление книги
- 121 Получение количества книг
- 121 Отображение списка книг
- 122 Ссылки
- 123 Резюме
- 123 Вопросы для самоконтроля
- 95 Знакомство с поставщиками, встроенными в Android
- 125 Глава 5. Намерения
- 125 Понятие намерений в Android
- 126 Намерения, доступные в Android
- 128 Знакомство со структурой намерения
- 129 Намерения и URI данных
- 129 Обобщенные действия
- 131 Использование дополнительной информации
- 132 Использование компонентов для непосредственного вызова активности
- 133 Категории намерений
- 136 Правила для определения соответствия между намерениями и их компонентами
- 138 Действие ACTION_PICK
- 140 Действие ACTION_GET_CONTENT
- 141 Отложенные намерения
- 142 Ссылки
- 143 Резюме
- 143 Вопросы для самоконтроля
- 145 Глава 6. Создание пользовательских интерфейсов и применение элементов управления
- 145 Разработка пользовательского интерфейса в Android
- 147 Создание пользовательского интерфейса полностью в коде
- 149 Создание пользовательского интерфейса полностью в XML
- 150 Создание пользовательского интерфейса в XML с кодом
- 151 Сравнение FILL_PARENT и MATCH_PARENT
- 152 Распространенные элементы управления Android
- 152 Текстовые элементы управления
- 156 Кнопочные элементы управления
- 163 Элемент управления ImageView
- 165 Элементы управления датой и временем
- 167 Элемент управления MapView
- 167 Адаптеры
- 168 Знакомство с классом SimpleCursorAdapter
- 170 Знакомство с классом ArrayAdapter
- 171 Использование адаптеров с элементами управления AdapterView
- 172 Базовый списковый элемент управления: ListView
- 179 Элемент управления GridView
- 180 Элемент управления Spinner
- 182 Элемент управления Gallery
- 182 Создание собственных адаптеров
- 187 Другие элементы управления Android
- 188 Стили и темы
- 188 Использование стилей
- 191 Использование тем
- 191 Диспетчеры компоновки
- 192 Диспетчер компоновки LinearLayout
- 195 Диспетчер компоновки TableLayout
- 198 Диспетчер компоновки RelativeLayout
- 199 Диспетчер компоновки FrameLayout
- 201 Диспетчер компоновки GridLayout
- 202 Настройка компоновки для различных конфигураций устройства
- 203 Ссылки
- 203 Резюме
- 204 Вопросы для самоконтроля
- 145 Разработка пользовательского интерфейса в Android
- 205 Глава 7. Работа с меню
- 205 Меню в Android
- 207 Создание меню
- 208 Работа с группами меню
- 209 Реагирование на выбор пунктов меню
- 209 Реагирование на выбор пунктов меню с помощью метода onOptionsItemSelected()
- 210 Реагирование на выбор пунктов меню с помощью слушателей
- 211 Реагирование на выбор пунктов меню с помощью намерения
- 211 Работа с другими типами меню
- 212 Расширенные меню
- 212 Работа с меню со значками
- 212 Работа с подменю
- 213 Работа с контекстными меню
- 216 Работа с альтернативными меню
- 219 Динамические меню
- 220 Загрузка меню из XML-файлов
- 220 Структура ресурсного XML-файла меню
- 221 Распаковка ресурсных XML-файлов меню
- 221 Реагирование на выбор пунктов меню, созданных из XML
- 222 Всплывающие меню в Android 4.0
- 224 Краткое введение в дополнительные XML-дескрипторы меню
- 225 Ссылки
- 226 Резюме
- 226 Вопросы для самоконтроля
- 205 Меню в Android
- 228 Глава 8. Фрагменты для планшетов и других устройств
- 229 Что собой представляет фрагмент?
- 230 Когда использовать фрагменты
- 231 Структура фрагмента
- 232 Жизненный цикл фрагмента
- 237 Пример приложения, иллюстрирующий жизненный цикл фрагментов
- 243 Класс FragmentTransaction и стек возврата фрагментов
- 244 Переходы и анимации транзакций фрагментов
- 246 Класс FragmentManager
- 247 Предостережение относительно ссылок на фрагменты
- 250 Вызов отдельной активности при необходимости
- 252 Постоянство фрагментов
- 253 Обмен данными с фрагментами
- 253 Использование методов startActivity() и setTargetFragment()
- 254 Реализация нестандартных анимаций с помощью класса ObjectAnimator
- 257 Ссылки
- 257 Резюме
- 258 Вопросы для самоконтроля
- 229 Что собой представляет фрагмент?
- 259 Глава 9. Работа с диалоговыми окнами
- 259 Использование диалоговых окон в Android
- 260 Фрагменты диалогового окна
- 260 Основы DialogFragment
- 265 Пример приложения с DialogFragment
- 275 Работа с классом Toast
- 275 Фрагменты диалоговых окон для более старых версий Android
- 276 Ссылки
- 276 Резюме
- 277 Вопросы для самоконтроля
- 278 Глава 10. Исследование панели действий
- 279 Структура панели действий
- 280 Активность, содержащая панель действий с навигацией посредством вкладок
- 281 Реализация базовых классов активностей
- 284 Обеспечение унифицированного поведения для панели действий
- 286 Реализация слушателя вкладок
- 287 Реализация активности, содержащей панель действий с вкладками
- 289 Компоновка текстового представления отладки с возможностью прокрутки
- 290 Взаимодействие панели действий и меню
- 292 Файл манифеста Android
- 292 Исследование активности TabNavigationActionBarActivity
- 293 Активность, содержащая панель действий со списковой навигацией
- 293 Создание SpinnerAdapter
- 294 Создание слушателя списка
- 295 Настройка панели действий со списковой навигацией
- 296 Внесение изменений в BaseActionBarActivity
- 296 Внесение изменений в AndroidManifest.xml
- 296 Исследование активности ListNavigationActionBarActivity
- 298 Активность, содержащая панель действий со стандартной навигацией
- 298 Настройка активности, содержащей панель действий со стандартной навигацией
- 300 Внесение изменений в BaseActionBarActivity
- 300 Внесение изменений в AndroidManifest.xml
- 300 Исследование активности StandardNavigationActionBarActivity
- 301 Панель действий и поисковое представление
- 302 Определение виджета поискового представления в качестве пункта меню
- 303 Создание активности результатов поиска
- 304 Настройка поиска с помощью XML-файла
- 304 Определение активности результатов поиска в файле манифеста
- 304 Идентификация цели для виджета поискового представления
- 305 Панель действий и фрагменты
- 305 Ссылки
- 306 Резюме
- 306 Вопросы для самоконтроля
- 308 Глава 11. Расширенная отладка и анализ
- 308 Включение расширенной отладки
- 309 Перспектива Debug
- 310 Перспектива DDMS
- 312 Перспектива Hierarchy View
- 313 Подключаемый модуль Pixel Perfect View
- 313 Представление Traceview
- 314 Команда adb
- 314 Консоль эмулятора
- 315 Класс StrictMode
- 315 Политики StrictMode
- 316 Отключение StrictMode
- 317 Использование StrictMode со старыми версиями Android
- 319 Пример приложения, использующего StrictMode
- 319 Ссылки
- 319 Резюме
- 320 Вопросы для самоконтроля
- 321 Глава 12. Реагирование на изменения конфигурации
- 321 Процесс изменения конфигурации
- 322 Цикл разрушения/создания активностей
- 324 Цикл разрушения/создания фрагментов
- 325 Использование FragmentManager для сохранения состояния фрагментов
- 326 Использование метода setRetainInstance() для фрагмента
- 326 Устаревшие методы обработки изменений в конфигурации
- 326 Ссылки
- 326 Резюме
- 327 Вопросы для самоконтроля
- 321 Процесс изменения конфигурации
- 328 Глава 13. Работа с настройками и сохранение состояния
- 328 Знакомство с инфраструктурой настроек
- 328 Элемент ListPreference
- 336 Элемент CheckBoxPreference
- 338 Элемент EditTextPreference
- 339 Элементы RingtonePreference и MultiSelectListPreference
- 339 Организация настроек
- 339 Использование PreferenceCategory
- 342 Создание дочерних настроек с зависимостями
- 343 Настройки с заголовками
- 344 Манипулирование настройками в коде
- 345 Сохранение состояния с помощью настроек
- 346 Использование DialogPreference
- 346 Ссылки
- 347 Резюме
- 347 Вопросы для самоконтроля
- 328 Знакомство с инфраструктурой настроек
- 348 Глава 14. Безопасность и права доступа
- 348 Знакомство с моделью безопасности в Android
- 348 Обзор концепций безопасности
- 349 Подписание приложений для развертывания
- 355 Проверки безопасности во время выполнения
- 355 Защита на границах процессов
- 356 Объявление и использование прав доступа
- 357 Специальные права доступа и их использование
- 363 Права доступа к URI и их использование
- 365 Ссылки
- 365 Резюме
- 366 Вопросы для самоконтроля
- 348 Знакомство с моделью безопасности в Android
- 367 Глава 15. Построение и использование служб
- 367 Потребление HTTP-служб
- 368 Использование HttpClient для HTTP-запросов GET
- 369 Использование HttpClient для HTTP-запросов POST (пример многоэлементного запроса)
- 372 Анализаторы SOAP, JSON и XML
- 373 Обработка исключений
- 375 Решение проблем, связанных с многопоточностью
- 377 Обработка тайм-аутов
- 378 Использование HttpURLConnection
- 379 Использование AndroidHttpClient
- 380 Использование фоновых потоков (AsyncTask)
- 386 Получение файлов с использованием DownloadManager
- 391 Использование служб Android
- 391 Что собой представляют службы в Android
- 392 Что собой представляют локальные службы
- 399 Что собой представляют службы AIDL
- 399 Определение интерфейса службы в AIDL
- 402 Реализация AIDL-интерфейса
- 404 Вызов службы из клиентского приложения
- 408 Передача составных типов службе
- 417 Ссылки
- 418 Резюме
- 419 Вопросы для самоконтроля
- 367 Потребление HTTP-служб
- 420 Глава 16. Исследование пакетов
- 420 Пакеты и процессы
- 420 Детали спецификации пакета
- 421 Трансляция имени пакета в имя процесса
- 421 Вывод списка установленных пакетов
- 421 Удаление пакета с помощью браузера пакетов
- 422 Еще раз о процессе подписания пакетов
- 422 Цифровые подписи: сценарий 1
- 423 Цифровые подписи: сценарий 2
- 423 Шаблон для понимания цифровых подписей
- 423 Как создать цифровую подпись?
- 424 Последствия процесса подписания
- 424 Разделение данных между пакетами
- 425 Природа разделяемых идентификаторов пользователей
- 425 Шаблон кода для разделения данных
- 426 Библиотечные проекты
- 427 Что собой представляет библиотечный проект?
- 427 Особенности библиотечных проектов
- 429 Создание библиотечного проекта
- 432 Создание проекта Android, который использует библиотечный проект
- 440 Предостережения относительно использования библиотечных проектов
- 440 Ссылки
- 441 Резюме
- 441 Вопросы для самоконтроля
- 420 Пакеты и процессы
- 443 Глава 17. Исследование обработчиков
- 443 Компоненты и потоки Android
- 444 Активности выполняются в главном потоке
- 445 Широковещательные приемники выполняются в главном потоке
- 445 Службы выполняются в главном потоке
- 445 Поставщик контента выполняется в главном потоке
- 445 Последствия наличия единственного главного потока
- 445 Пулы потоков, поставщики контента и внешние службы
- 446 Потоковые утилиты: исследование потоков
- 447 Обработчики
- 448 Последствия удержания главного потока
- 449 Использование обработчика для откладывания работы в главном потоке
- 449 Пример исходного кода обработчика, который откладывает работу
- 451 Конструирование подходящего объекта сообщения
- 451 Отправка объектов сообщений в очередь
- 452 Реагирование на обратный вызов handleMessage()
- 452 Использование рабочих потоков
- 453 Активизация рабочего потока из меню
- 454 Взаимодействие между рабочим и главным потоками
- 454 Реализация WorkerThreadRunnable
- 455 Реализация ReportStatusHandler
- 456 Время жизни компонентов и процессов
- 456 Жизненный цикл активности
- 458 Жизненный цикл службы
- 458 Жизненный цикл приемника
- 458 Жизненный цикл поставщика
- 459 Ссылки
- 459 Резюме
- 460 Вопросы для самоконтроля
- 461 Глава 18. Исследование асинхронных задач
- 462 Реализация простой асинхронной задачи
- 462 Обобщения в классе AsyncTask
- 463 Создание подкласса AsyncTask
- 464 Реализация простой асинхронной задачи
- 465 Обращение к асинхронной задаче
- 466 Метод обратного вызова onPreExecute() и диалоговое окно с информацией о ходе работы
- 467 Метод doInBackground()
- 467 Запуск метода onProgressUpdate()
- 467 Метод onPostExecute()
- 467 Построение детерминированного диалогового окна с информацией о ходе работы
- 470 Природа асинхронной задачи
- 471 Поворот устройства и AsyncTask
- 472 Методы жизненного цикла и AsyncTask
- 472 Ссылки
- 472 Резюме
- 473 Вопросы для самоконтроля
- 462 Реализация простой асинхронной задачи
- 474 Глава 19. Широковещательные приемники и длительно выполняющиеся службы
- 474 Широковещательные приемники
- 475 Отправка широковещательного события
- 475 Кодирование простого приемника: пример кода
- 476 Регистрация приемника в файле манифеста
- 477 Использование нескольких приемников
- 479 Приемники за пределами процесса
- 479 Использование уведомлений, поступающих от приемника
- 479 Отслеживание уведомлений с помощью диспетчера уведомлений
- 480 Отправка уведомления
- 483 Запуск активности в широковещательном приемнике
- 484 Длительно выполняющиеся приемники и службы
- 484 Протокол длительно выполняющегося широковещательного приемника
- 485 Служба IntentService
- 486 Исходный код IntentService
- 488 Расширение класса IntentService для широковещательного приемника
- 489 Абстракция длительно выполняющейся широковещательной службы
- 491 Длительно выполняющийся приемник
- 493 Абстрагирование блокировки пробуждения с помощью класса LightedGreenRoom
- 494 Освещенная зеленая комната
- 499 Реализация длительно выполняющейся службы
- 499 Детали, связанные с nonsticky-службами
- 500 Детали, связанные со sticky-службами
- 500 Разновидность nonsticky-служб: повторная доставка намерений
- 501 Указание флагов службы в методе onStartCommand()
- 501 Выбор подходящего режима службы
- 501 Управление блокировкой пробуждения из двух мест
- 502 Реализация длительно выполняющейся службы
- 503 Тестирование длительно выполняющихся служб
- 504 Обязанности разработчика
- 504 Обязанности инфраструктуры
- 505 Несколько замечаний относительно загружаемого файла проектов
- 505 Ссылки
- 506 Резюме
- 506 Вопросы для самоконтроля
- 508 Глава 20. Исследование диспетчера оповещений
- 508 Основы диспетчера оповещений: установка простого оповещения
- 508 Получение доступа к диспетчеру оповещений
- 509 Установка времени оповещения
- 509 Создание приемника для оповещения
- 510 Создание намерения PendingIntent, соответствующего оповещению
- 511 Установка оповещения
- 511 Тестовый проект
- 512 Альтернативные сценарии с диспетчером оповещений
- 512 Установка повторяющегося оповещения
- 514 Отмена оповещения
- 514 Работа с множеством оповещений
- 516 Приоритетность намерения при установке оповещений
- 519 Постоянство оповещений
- 519 Основные факты, связанные с диспетчером оповещений
- 519 Ссылки
- 520 Резюме
- 520 Вопросы для самоконтроля
- 508 Основы диспетчера оповещений: установка простого оповещения
- 521 Глава 21. Исследование двухмерной анимации
- 522 Покадровая анимация
- 522 Планирование покадровой анимации
- 522 Создание активности
- 524 Добавление анимации к активности
- 526 Анимация компоновки
- 527 Базовые типы анимации с построением промежуточных кадров
- 528 Планирование тестовой оснастки для анимации компоновки
- 528 Создание активности и представления ListView
- 530 Анимация представления ListView
- 533 Использование интерполяторов
- 535 Анимация представления
- 535 Суть анимации представления
- 538 Добавление анимации
- 541 Использование камеры для имитации глубины в двухмерном пространстве
- 542 Исследование класса AnimationListener
- 543 Некоторые замечания о трансформации матриц
- 544 Анимации свойств: новый API-интерфейс анимации
- 545 Анимация свойства
- 546 Планирование тестовой оснастки для анимации свойств
- 548 Простейшая анимация представления с помощью аниматоров объектов
- 550 Последовательная анимация с помощью класса AnimatorSet
- 550 Установка взаимосвязей между анимациями с помощью AnimationSetBuilder
- 551 Использование XML-файлов для загрузки аниматоров
- 553 Использование класса PropertyValuesHolder
- 554 Анимация свойств представления
- 555 Анализаторы типа
- 557 Ключевые кадры
- 558 Переходы компоновки
- 559 Ссылки
- 560 Резюме
- 560 Вопросы для самоконтроля
- 522 Покадровая анимация
- 562 Глава 22. Исследование карт и служб местоположения
- 563 Обзор пакета картографии
- 563 Получение ключа Maps API от Google
- 565 Классы MapView и MapActivity
- 574 Пакет location
- 574 Геокодирование в Android
- 587 Отображение местоположения с использованием MyLocationOverlay
- 590 Использование сигналов о приближении
- 594 Ссылки
- 595 Резюме
- 595 Вопросы для самоконтроля
- 563 Обзор пакета картографии
- 597 Глава 23. Использование API-интерфейсов телефонии
- 597 Работа с SMS
- 597 Отправка SMS-сообщений
- 600 Мониторинг входящих SMS-сообщений
- 603 Работа с папками SMS
- 604 Отправка электронной почты
- 605 Работа с диспетчером телефонии
- 608 Протокол установления сеанса (SIP)
- 609 Демонстрационное приложение SipDemo
- 610 Пакет android.net.sip
- 611 Ссылки
- 611 Резюме
- 611 Вопросы для самоконтроля
- 597 Работа с SMS
- 613 Глава 24. Инфраструктуры для работы с медиа
- 613 Использование API-интерфейсов для работы с медиа
- 614 Использование SD-карт
- 618 Воспроизведение медиа-контента
- 618 Воспроизведение аудиоконтента
- 622 Метод setDataSource()
- 624 Использование класса SoundPool для одновременного воспроизведения треков
- 628 Воспроизведение звуков с помощью класса JetPlayer
- 628 Воспроизведение фоновых звуков с помощью класса AsyncPlayer
- 629 Низкоуровневое воспроизведение аудио с использованием класса AudioTrack
- 629 Особенности MediaPlayer
- 630 Воспроизведение видеоконтента
- 632 Запись медиаконтента
- 632 Аудиозапись с помощью класса MediaRecorder
- 636 Аудиозапись с помощью класса AudioRecord
- 640 Видеозапись
- 650 Класс MediaStore
- 650 Запись аудио с использованием намерения
- 654 Добавление медиаконтента в хранилище медиа
- 656 Запуск MediaScanner для всей SD-карты
- 656 Ссылки
- 656 Резюме
- 657 Вопросы для самоконтроля
- 613 Использование API-интерфейсов для работы с медиа
- 659 Глава 25. Виджеты домашнего экрана
- 659 Архитектура виджетов домашнего экрана
- 660 Что собой представляют виджеты домашнего экрана?
- 660 Виджеты домашнего экрана с точки зрения пользователя
- 663 Жизненный цикл виджета
- 669 Пример приложения с виджетом
- 670 Определение поставщика виджетов
- 672 Файлы, относящиеся к компоновке виджета
- 674 Реализация поставщика виджетов
- 675 Реализация моделей виджетов
- 686 Инструмент для предварительного просмотра виджетов
- 686 Ограничения и расширения виджетов
- 687 Виджеты на основе коллекций
- 687 Ссылки
- 687 Резюме
- 687 Вопросы для самоконтроля
- 659 Архитектура виджетов домашнего экрана
- 689 Глава 26. Исследование списковых виджетов
- 689 Краткие заметки об удаленных представлениях
- 690 Работа со списками в удаленных представлениях
- 692 Подготовка удаленного представления
- 694 Загрузка удаленной компоновки
- 695 Настройка RemoteViewsService
- 697 Настройка RemoteViewsFactory
- 700 Настройка событий onClick
- 703 Реагирование на события onClick
- 705 Рабочий пример: тестовый списковый виджет домашнего экрана
- 705 Создание поставщика тестовых виджетов
- 708 Создание фабрики удаленных представлений
- 711 Кодирование службы удаленных представлений
- 711 Файл главной компоновки виджета
- 711 Метаданные поставщика виджетов
- 712 Файл AndroidManifest.xml
- 712 Проверка тестового спискового виджета
- 714 Ссылки
- 715 Резюме
- 715 Вопросы для самоконтроля
- 716 Глава 27. Сенсорные экраны
- 716 События, связанные с перемещением
- 716 Объект MotionEvent
- 728 Удаление объектов MotionEvent
- 728 Использование класса VelocityTracker
- 730 Функция мультитач
- 731 Основы мультитач
- 737 Касания и карты
- 739 Жесты
- 739 Жест сдвигания/раздвигания пальцев
- 740 Класс GestureDetector и интерфейс OnGestureListener
- 742 Специальные жесты
- 743 Приложение Gestures Builder
- 749 Ссылки
- 749 Резюме
- 750 Вопросы для самоконтроля
- 716 События, связанные с перемещением
- 751 Глава 28. Реализация перетаскивания
- 751 Исследование перетаскивания
- 756 Основы перетаскивания в Android 3.0 и последующих версиях
- 758 Пример приложения со средствами перетаскивания
- 758 Список файлов
- 758 Компоновка для примера приложения со средствами перетаскивания
- 760 Реагирование на события onDrag в зоне сбрасывания
- 763 Настройка представлений источника перетаскивания
- 767 Тестирование примера приложения со средствами перетаскивания
- 768 Ссылки
- 768 Резюме
- 769 Вопросы для самоконтроля
- 770 Глава 29. Использование датчиков
- 770 Что собой представляет датчик
- 771 Обнаружение датчиков
- 771 Сведения, которые можно получить о датчике
- 773 Получение событий датчика
- 775 Проблемы с получением данных от датчиков
- 775 Метод onAccuracyChanged() все время сообщает одно и то же
- 776 Отсутствует прямой доступ к значениям датчиков
- 776 Значения датчика не отправляются достаточно быстро
- 776 Датчики выключаются вместе с экраном
- 776 Интерпретация данных от датчиков
- 777 Датчики освещенности
- 777 Датчики приближения
- 778 Датчики температуры
- 778 Датчики давления
- 778 Датчики типа гироскопов
- 779 Акселерометры
- 784 Датчики магнитного поля
- 785 Совместное использование акселерометров и датчиков магнитного поля
- 785 Датчики ориентации
- 791 Магнитное склонение и GeomagneticField
- 791 Датчик гравитации
- 791 Датчики линейного ускорения
- 791 Датчики вектора поворота
- 792 Датчики NFC
- 803 Ссылки
- 804 Резюме
- 805 Вопросы для самоконтроля
- 770 Что собой представляет датчик
- 806 Глава 30. Исследование API-интерфейса для работы с контактами
- 807 Учетные записи
- 807 Краткий обзор экранов, связанных с учетными записями
- 809 Отношения между учетными записями и контактами
- 809 Перечисление учетных записей
- 810 Освоение приложения для работы с контактами
- 810 Введение в персональный профиль
- 812 Просмотр контактов
- 812 Просмотр деталей контакта
- 812 Редактирование деталей контакта
- 813 Установка фотографии для контакта
- 813 Экспорт контактов
- 815 Различные типы данных контактов
- 816 Что собой представляют контакты
- 816 Исследование баз данных SQLite для хранения контактов
- 817 Низкоуровневые контакты
- 819 Таблица данных
- 820 Агрегированные контакты
- 822 Представление view_contacts
- 823 Представление contact_entities_view
- 824 Работа с API-интерфейсом контактов
- 824 Просмотр учетных записей
- 826 Просмотр агрегированных контактов
- 834 Просмотр низкоуровневых контактов
- 837 Просмотр данных низкоуровневого контакта
- 840 Добавление контакта и его деталей
- 842 Управление агрегированием
- 843 Влияние синхронизации
- 844 Исследование персонального профиля
- 845 Чтение низкоуровневых контактов профиля
- 845 Чтение данных контакта профиля
- 846 Добавление данных к персональному профилю
- 848 Ссылки
- 849 Резюме
- 849 Вопросы для самоконтроля
- 807 Учетные записи
- 851 Глава 31. Развертывание готового приложения: Android Market и другие возможности
- 851 Как стать издателем
- 852 Следование правилам
- 854 Консоль разработчика
- 857 Подготовка приложения к продаже
- 857 Тестирование на различных устройствах
- 857 Поддержка экранов разных размеров
- 858 Подготовка файла AndroidManifest.xml к загрузке
- 859 Локализация приложения
- 860 Подготовка значка приложения
- 860 Соображения по поводу того, как зарабатывать на приложениях
- 861 Перенаправление пользователей обратно на Android Market
- 861 Служба лицензирования Android
- 862 Использование средства ProGuard для оптимизации и противостояния пиратству
- 864 Подготовка файла .apk для загрузки
- 864 Загрузка приложения
- 865 Графика
- 865 Перечисление детальных сведений
- 866 Опции публикации
- 867 Контактная информация
- 868 Согласие
- 868 Пользовательский интерфейс Android Market
- 869 Другие возможности, отличные от Android Market
- 870 Ссылки
- 871 Резюме
- 871 Вопросы для самоконтроля
- 851 Как стать издателем
- 873 Предметный указатель
Инструкция как скачать книгу Сатия Коматинени, Дэйв Маклин: Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.