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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 228 Глава 8. Фрагменты для планшетов и других устройств
    • 229 Что собой представляет фрагмент?
      • 230 Когда использовать фрагменты
      • 231 Структура фрагмента
      • 232 Жизненный цикл фрагмента
      • 237 Пример приложения, иллюстрирующий жизненный цикл фрагментов
    • 243 Класс FragmentTransaction и стек возврата фрагментов
      • 244 Переходы и анимации транзакций фрагментов
    • 246 Класс FragmentManager
      • 247 Предостережение относительно ссылок на фрагменты
      • 250 Вызов отдельной активности при необходимости
      • 252 Постоянство фрагментов
    • 253 Обмен данными с фрагментами
      • 253 Использование методов startActivity() и setTargetFragment()
    • 254 Реализация нестандартных анимаций с помощью класса ObjectAnimator
    • 257 Ссылки
    • 257 Резюме
    • 258 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 328 Глава 13. Работа с настройками и сохранение состояния
    • 328 Знакомство с инфраструктурой настроек
      • 328 Элемент ListPreference
      • 336 Элемент CheckBoxPreference
      • 338 Элемент EditTextPreference
      • 339 Элементы RingtonePreference и MultiSelectListPreference
    • 339 Организация настроек
    • 339 Использование PreferenceCategory
    • 342 Создание дочерних настроек с зависимостями
    • 343 Настройки с заголовками
    • 344 Манипулирование настройками в коде
    • 345 Сохранение состояния с помощью настроек
    • 346 Использование DialogPreference
    • 346 Ссылки
    • 347 Резюме
    • 347 Вопросы для самоконтроля
  • 348 Глава 14. Безопасность и права доступа
    • 348 Знакомство с моделью безопасности в Android
      • 348 Обзор концепций безопасности
      • 349 Подписание приложений для развертывания
    • 355 Проверки безопасности во время выполнения
      • 355 Защита на границах процессов
      • 356 Объявление и использование прав доступа
      • 357 Специальные права доступа и их использование
    • 363 Права доступа к URI и их использование
    • 365 Ссылки
    • 365 Резюме
    • 366 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 562 Глава 22. Исследование карт и служб местоположения
    • 563 Обзор пакета картографии
      • 563 Получение ключа Maps API от Google
      • 565 Классы MapView и MapActivity
    • 574 Пакет location
      • 574 Геокодирование в Android
      • 587 Отображение местоположения с использованием MyLocationOverlay
      • 590 Использование сигналов о приближении
    • 594 Ссылки
    • 595 Резюме
    • 595 Вопросы для самоконтроля
  • 597 Глава 23. Использование API-интерфейсов телефонии
    • 597 Работа с SMS
      • 597 Отправка SMS-сообщений
      • 600 Мониторинг входящих SMS-сообщений
      • 603 Работа с папками SMS
      • 604 Отправка электронной почты
    • 605 Работа с диспетчером телефонии
    • 608 Протокол установления сеанса (SIP)
    • 609 Демонстрационное приложение SipDemo
    • 610 Пакет android.net.sip
    • 611 Ссылки
    • 611 Резюме
    • 611 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 659 Глава 25. Виджеты домашнего экрана
    • 659 Архитектура виджетов домашнего экрана
      • 660 Что собой представляют виджеты домашнего экрана?
      • 660 Виджеты домашнего экрана с точки зрения пользователя
      • 663 Жизненный цикл виджета
    • 669 Пример приложения с виджетом
      • 670 Определение поставщика виджетов
      • 672 Файлы, относящиеся к компоновке виджета
      • 674 Реализация поставщика виджетов
      • 675 Реализация моделей виджетов
    • 686 Инструмент для предварительного просмотра виджетов
    • 686 Ограничения и расширения виджетов
    • 687 Виджеты на основе коллекций
    • 687 Ссылки
    • 687 Резюме
    • 687 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 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 Вопросы для самоконтроля
  • 873 Предметный указатель

Инструкция как скачать книгу Сатия Коматинени, Дэйв Маклин: Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов
Рейтинг книги:
8 голосов
1005

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: