Главная » 2014 » Июнь » 16 » Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов
17:00
Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов
Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов - Эта книга посвящена построению реальных мобильных приложений с использованием новой версии Android SDK 4 (Ice Cream Sandwich), которая унифицирует применение Gingerbread для смартфонов, Honeycomb для планшетов и следующих дополнений, таких как Google TV и т.п. Книга является обновлением предшествующего издания и раскрывает все аспекты, начиная с основ создания приложений для встроенных устройств, смартфонов и планшетных ПК и заканчивая расширенными концепциями, такими как построение трехмерных компонентов, реализация многозадачности, работа с датчиками, создание дополненной реальности, улучшенная поддержка виджетов домашнего экрана и многое другое.
Название: Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов Автор: Сатия Коматинени, Дэйв Маклин Издательство: Вильямс Год: 2012 Страниц: 880 Формат: PDF Размер: 11,5 МБ ISBN: 978-5-8459-1801-7 Качество: Отличное Серия или Выпуск: Expert's Voice Язык: Русский
Содержание:
Об авторах О технических рецензентах Благодарности Предисловие От издательства Глава 1. Введение в вычислительную платформу Android Новая платформа для нового персонального компьютера История Android Знакомство с Dalvik VM Программный стек Android Разработка приложений для конечных пользователей с помощью Android SDK Эмулятор Android Пользовательский интерфейс Android Основные компоненты Android Более сложные концепции пользовательского интерфейса Компоненты служб Android Компоненты Android для работы с медиа и телефонией Java-пакеты для Android Использование исходного кода Android Онлайновый просмотр исходного кода Android Использование Git для загрузки исходного кода Android Проекты примеров, рассмотренных в книге Резюме Глава 2. Настройка среды разработки Настройка среды Загрузка JDK 6 Загрузка Eclipse 3.6 Загрузка Android SDK Обновление переменной среды PATH Окно инструментов Установка Android Development Tools (ADT) Основные компоненты Представление Активность Фрагмент Намерение Поставщик контента Служба Файл AndroidManifest.xml Виртуальные устройства Android Приложение «Hello World!» Работа с виртуальными устройствами Android Запуск на реальном устройстве Структура Android-приложения Жизненный цикл Android-приложения Простая отладка приложения Запуск эмулятора Ссылки Резюме Вопросы для самоконтроля Глава 3. Ресурсы Android Понятие ресурсов Строковые ресурсы Ресурсы компоновки Синтаксис ссылок на ресурсы Определение собственных идентификаторов ресурсов для дальнейшего использования Компилированные и не компилированные ресурсы Android Перечисление основных ресурсов Android Строковые массивы Множественные числа Дополнительные сведения о строковых ресурсах Цветовые ресурсы Ресурсы размерностей Ресурсы изображений Ресурсы цветных фигур Работа с произвольными XML-файлами ресурсов Низкоуровневые ресурсы Работа с активами Обзор структуры каталогов ресурсов Ресурсы и изменения конфигурации Ссылки Резюме Вопросы для самоконтроля Глава 4. Поставщики контента Знакомство с поставщиками, встроенными в Android Базы данных в эмуляторе и на доступных устройствах Краткое введение в SQLite Архитектура поставщиков контента Структура URI контента в Android Структура MIME-типов в Android Чтение данных с использованием URI Использование курсора Android Работа с конструкцией where Вставка записей Добавление файла к поставщику контента Обновления и удаления Реализация поставщиков контента Планирование базы данных Расширение класса ContentProvider Обеспечение контрактов MIME-типов Реализация метода query Реализация метода insert Реализация метода update Реализация метода delete Определение URI с помощью класса UriMatcher Использование карт проекций Регистрация поставщика Использование поставщика книг Добавление книги Удаление книги Получение количества книг Отображение списка книг Ссылки Резюме Вопросы для самоконтроля Глава 5. Намерения Понятие намерений в Android Намерения, доступные в Android Знакомство со структурой намерения Намерения и URI данных Обобщенные действия Использование дополнительной информации Использование компонентов для непосредственного вызова активности Категории намерений Правила для определения соответствия между намерениями и их компонентами Действие ACTION_PICK Действие ACTION_GET_CONTENT Отложенные намерения Ссылки Резюме Вопросы для самоконтроля Глава 6. Создание пользовательских интерфейсов и применение элементов управления Разработка пользовательского интерфейса в Android Создание пользовательского интерфейса полностью в коде Создание пользовательского интерфейса полностью в XML Создание пользовательского интерфейса в XML с кодом Сравнение FILL_PARENT и MATCH_PARENT Распространенные элементы управления Android Текстовые элементы управления Кнопочные элементы управления Элемент управления ImageView Элементы управления датой и временем Элемент управления MapView Адаптеры Знакомство с классом SimpleCursorAdapter Знакомство с классом ArrayAdapter Использование адаптеров с элементами управления AdapterView Базовый списковый элемент управления: ListView Элемент управления GridView Элемент управления Spinner Элемент управления Gallery Создание собственных адаптеров Другие элементы управления Android Стили и темы Использование стилей Использование тем Диспетчеры компоновки Диспетчер компоновки LinearLayout Диспетчер компоновки TableLayout Диспетчер компоновки RelativeLayout Диспетчер компоновки FrameLayout Диспетчер компоновки GridLayout Настройка компоновки для различных конфигураций устройства Ссылки Резюме Вопросы для самоконтроля Глава 7. Работа с меню Меню в Android Создание меню Работа с группами меню Реагирование на выбор пунктов меню Реагирование на выбор пунктов меню с помощью метода onOptionsItemSelected() Реагирование на выбор пунктов меню с помощью слушателей Реагирование на выбор пунктов меню с помощью намерения Работа с другими типами меню Расширенные меню Работа с меню со значками Работа с подменю Работа с контекстными меню Работа с альтернативными меню Динамические меню Загрузка меню из XML-файлов Структура ресурсного XML-файла меню Распаковка ресурсных XML-файлов меню Реагирование на выбор пунктов меню, созданных из XML Всплывающие меню в Android 4.0 Краткое введение в дополнительные XML-дескрипторы меню Ссылки Резюме Вопросы для самоконтроля Глава 8. Фрагменты для планшетов и других устройств Что собой представляет фрагмент? Когда использовать фрагменты Структура фрагмента Жизненный цикл фрагмента Пример приложения, иллюстрирующий жизненный цикл фрагментов Класс FragmentTransaction и стек возврата фрагментов Переходы и анимации транзакций фрагментов Класс FragmentManager Предостережение относительно ссылок на фрагменты Вызов отдельной активности при необходимости Постоянство фрагментов Обмен данными с фрагментами Использование методов startActivity() и setTargetFragment() Реализация нестандартных анимаций с помощью класса ObjectAnimator Ссылки Резюме Вопросы для самоконтроля Глава 9. Работа с диалоговыми окнами Использование диалоговых окон в Android Фрагменты диалогового окна Основы DialogFragment Пример приложения с DialogFragment Работа с классом Toast Фрагменты диалоговых окон для более старых версий Android Ссылки Резюме Вопросы для самоконтроля Глава 10. Исследование панели действий Структура панели действий Активность, содержащая панель действий с навигацией посредством вкладок Реализация базовых классов активностей Обеспечение унифицированного поведения для панели действий Реализация слушателя вкладок Реализация активности, содержащей панель действий с вкладками Компоновка текстового представления отладки с возможностью прокрутки Взаимодействие панели действий и меню Файл манифеста Android Исследование активности TabNavigationActionBarActivity Активность, содержащая панель действий со списковой навигацией Создание SpinnerAdapter Создание слушателя списка Настройка панели действий со списковой навигацией Внесение изменений в BaseActionBarActivity Внесение изменений в AndroidManifest. xml Исследование активности ListNavigationActionBarActivity Активность, содержащая панель действий со стандартной навигацией Настройка активности, содержащей панель действий со стандартной навигацией Внесение изменений в BaseActionBarActivity Внесение изменений в AndroidManifest. xml Исследование активности StandardNavigationActionBarActivity Панель действий и поисковое представление Определение виджета поискового представления в качестве пункта меню Создание активности результатов поиска Настройка поиска с помощью XML-файла Определение активности результатов поиска в файле манифеста Идентификация цели для виджета поискового представления Панель действий и фрагменты Ссылки Резюме Вопросы для самоконтроля Глава 11. Расширенная отладка и анализ Включение расширенной отладки Перспектива Debug Перспектива DDMS Перспектива Hierarchy View Подключаемый модуль Pixel Perfect View Представление Traceview Команда adb Консоль эмулятора Класс StrictMode Политики StrictMode Отключение StrictMode Использование StrictMode со старыми версиями Android Пример приложения, использующего StrictMode Ссылки Резюме Вопросы для самоконтроля Глава 12. Реагирование на изменения конфигурации Процесс изменения конфигурации Цикл разрушения/создания активностей Цикл разрушения/создания фрагментов Использование FragmentManager для сохранения состояния фрагментов Использование метода setRetainInstance() для фрагмента Устаревшие методы обработки изменений в конфигурации Ссылки Резюме Вопросы для самоконтроля Глава 13. Работа с настройками и сохранение состояния Знакомство с инфраструктурой настроек Элемент ListPreference Элемент CheckBoxPreference Элемент EditTextPreference Элементы RingtonePreference и MultiSelectListPreference Организация настроек Использование PreferenceCategory Создание дочерних настроек с зависимостями Настройки с заголовками Манипулирование настройками в коде Сохранение состояния с помощью настроек Использование DialogPreference Ссылки Резюме Вопросы для самоконтроля Глава 14. Безопасность и права доступа Знакомство с моделью безопасности в Android Обзор концепций безопасности Подписание приложений для развертывания Проверки безопасности во время выполнения Защита на границах процессов Объявление и использование прав доступа Специальные права доступа и их использование Права доступа к URI и их использование Ссылки Резюме Вопросы для самоконтроля Глава 15. Построение и использование служб Потребление HTTP-служб Использование HttpClient для HTTP-запросов GET Использование HttpClient для HTTP-запросов POST(пример многоэлементного запроса) Анализаторы SOAP, JSON и XML Обработка исключений Решение проблем, связанных с многопоточностью Обработка тайм-аутов Использование HttpURLConnection Использование AndroidHttpClient Использование фоновых потоков(AsyncTask) Получение файлов с использованием DownloadManager Использование служб Android Что собой представляют службы в Android Что собой представляют локальные службы Что собой представляют службы AIDL Определение интерфейса службы в AIDL Реализация AIDL-интерфейса Вызов службы из клиентского приложения Передача составных типов службе Ссылки Резюме Вопросы для самоконтроля Глава 16. Исследование пакетов Пакеты и процессы Детали спецификации пакета Трансляция имени пакета в имя процесса Вывод списка установленных пакетов Удаление пакета с помощью браузера пакетов Еще раз о процессе подписания пакетов Цифровые подписи: сценарий 1 Цифровые подписи: сценарий 2 Шаблон для понимания цифровых подписей Как создать цифровую подпись? Последствия процесса подписания Разделение данных между пакетами Природа разделяемых идентификаторов пользователей Шаблон кода для разделения данных Библиотечные проекты Что собой представляет библиотечный проект? Особенности библиотечных проектов Создание библиотечного проекта Создание проекта Android, который использует библиотечный проект Предостережения относительно использования библиотечных проектов Ссылки Резюме Вопросы для самоконтроля Глава 17. Исследование обработчиков Компоненты и потоки Android Активности выполняются в главном потоке Широковещательные приемники выполняются в главном потоке Службы выполняются в главном потоке Поставщик контента выполняется в главном потоке Последствия наличия единственного главного потока Пулы потоков, поставщики контента и внешние службы Потоковые утилиты: исследование потоков Обработчики Последствия удержания главного потока Использование обработчика для откладывания работы в главном потоке Пример исходного кода обработчика, который откладывает работу Конструирование подходящего объекта сообщения Отправка объектов сообщений в очередь Реагирование на обратный вызов handleMessage() Использование рабочих потоков Активизация рабочего потока из меню Взаимодействие между рабочим и главным потоками Реализация WorkerThreadRunnable Реализация ReportStatusHandler Время жизни компонентов и процессов Жизненный цикл активности Жизненный цикл службы Жизненный цикл приемника Жизненный цикл поставщика Ссылки Резюме Вопросы для самоконтроля Глава 18. Исследование асинхронных задач Реализация простой асинхронной задачи Обобщения в классе AsyncTask Создание подкласса AsyncTask Реализация простой асинхронной задачи Обращение к асинхронной задаче Метод обратного вызова onPreExecute() и диалоговое окно с информацией о ходе работы Метод doInBackground() Запуск метода onProgressUpdate() Метод onPostExecute() Построение детерминированного диалогового окна с информацией о ходе работы Природа асинхронной задачи Поворот устройства и AsyncTask Методы жизненного цикла и AsyncTask Ссылки Резюме Вопросы для самоконтроля Глава 19. Широковещательные приемники и длительно выполняющиеся службы Широковещательные приемники Отправка широковещательного события Кодирование простого приемника: пример кода Регистрация приемника в файле манифеста Использование нескольких приемников Приемники за пределами процесса Использование уведомлений, поступающих от приемника Отслеживание уведомлений с помощью диспетчера уведомлений Отправка уведомления Запуск активности в широковещательном приемнике Длительно выполняющиеся приемники и службы Протокол длительно выполняющегося широковещательного приемника Служба IntentService Исходный код IntentService Расширение класса IntentService для широковещательного приемника Абстракция длительно выполняющейся широковещательной службы Длительно выполняющийся приемник Абстрагирование блокировки пробуждения с помощью класса LightedGreenRoom Освещенная зеленая комната Реализация длительно выполняющейся службы Детали, связанные с nonsticky-службами Детали, связанные со sticky-службами Разновидность nonsticky-служб: повторная доставка намерений Указание флагов службы в методе onStartCommand() Выбор подходящего режима службы Управление блокировкой пробуждения из двух мест Реализация длительно выполняющейся службы Тестирование длительно выполняющихся служб Обязанности разработчика Обязанности инфраструктуры Несколько замечаний относительно загружаемого файла проектов Ссылки Резюме Вопросы для самоконтроля Глава 20. Исследование диспетчера оповещений Основы диспетчера оповещений: установка простого оповещения Получение доступа к диспетчеру оповещений Установка времени оповещения Создание приемника для оповещения Создание намерения PendingIntent, соответствующего оповещению Установка оповещения Тестовый проект Альтернативные сценарии с диспетчером оповещений Установка повторяющегося оповещения Отмена оповещения Работа с множеством оповещений Приоритетность намерения при установке оповещений Постоянство оповещений Основные факты, связанные с диспетчером оповещений Ссылки Резюме Вопросы для самоконтроля Глава 21. Исследование двухмерной анимации Покадровая анимация Планирование покадровой анимации Создание активности Добавление анимации к активности Анимация компоновки Базовые типы анимации с построением промежуточных кадров Планирование тестовой оснастки для анимации компоновки Создание активности и представления ListView Анимация представления ListView Использование интерполяторов Анимация представления Суть анимации представления Добавление анимации Использование камеры для имитации глубины в двухмерном пространстве Исследование класса AnimationListener Некоторые замечания о трансформации матриц Анимации свойств: новый API-интерфейс анимации Анимация свойства Планирование тестовой оснастки для анимации свойств Простейшая анимация представления с помощью аниматоров объектов Последовательная анимация с помощью класса AnimatorSet Установка взаимосвязей между анимациями с помощью AnimationSetBuilder Использование XML-файлов для загрузки аниматоров Использование класса PropertyValuesHolder Анимация свойств представления Анализаторы типа Ключевые кадры Переходы компоновки Ссылки Резюме Вопросы для самоконтроля Глава 22. Исследование карт и служб местоположения Обзор пакета картографии Получение ключа Maps API от Google Классы MapView и MapActivity Пакет location Геокодирование в Android Отображение местоположения с использованием MyLocationOverlay Использование сигналов о приближении Ссылки Резюме Вопросы для самоконтроля Глава 23. Использование API-интерфейсов телефонии Работа с SMS Отправка SMS-сообщений Мониторинг входящих SMS-сообщений Работа с папками SMS Отправка электронной почты Работа с диспетчером телефонии Протокол установления сеанса (SIP) Демонстрационное приложение SipDemo Пакет android. net. sip Ссылки Резюме Вопросы для самоконтроля Глава 24. Инфраструктуры для работы с медиа Использование API-интерфейсов для работы с медиа Использование SD-карт Воспроизведение медиа-контента Воспроизведение аудиоконтента Метод setDataSource() Использование класса SoundPool для одновременного воспроизведения треков Воспроизведение звуков с помощью класса JetPlayer Воспроизведение фоновых звуков с помощью класса AsyncPlayer Низкоуровневое воспроизведение аудио с использованием класса AudioTrack Особенности MediaPlayer Воспроизведение видеоконтента Запись медиаконтента Аудиозапись с помощью класса MediaRecorder Аудиозапись с помощью класса AudioRecord Видеозапись Класс MediaStore Запись аудио с использованием намерения Добавление медиаконтента в хранилище медиа Запуск MediaScanner для всей SD-карты Ссылки Резюме Вопросы для самоконтроля Глава 25. Виджеты домашнего экрана Архитектура виджетов домашнего экрана Что собой представляют виджеты домашнего экрана? Виджеты домашнего экрана с точки зрения пользователя Жизненный цикл виджета Пример приложения с виджетом Определение поставщика виджетов Файлы, относящиеся к компоновке виджета Реализация поставщика виджетов Реализация моделей виджетов Инструмент для предварительного просмотра виджетов Ограничения и расширения виджетов Виджеты на основе коллекций Ссылки Резюме Вопросы для самоконтроля Глава 26. Исследование списковых виджетов Краткие заметки об удаленных представлениях Работа со списками в удаленных представлениях Подготовка удаленного представления Загрузка удаленной компоновки Настройка RemoteViewsService Настройка RemoteViewsFactory Настройка событий onClick Реагирование на события onClick Рабочий пример: тестовый списковый виджет домашнего экрана Создание поставщика тестовых виджетов Создание фабрики удаленных представлений Кодирование службы удаленных представлений Файл главной компоновки виджета Метаданные поставщика виджетов Файл AndroidManifest. xml Проверка тестового спискового виджета Ссылки Резюме Вопросы для самоконтроля Глава 27. Сенсорные экраны События, связанные с перемещением Объект MotionEvent Удаление объектов MotionEvent Использование класса VelocityTracker Функция мультитач Основы мультитач Касания и карты Жесты Жест сдвигания/раздвигания пальцев Класс GestureDetector и интерфейс OnGestureListener Специальные жесты Приложение Gestures Builder Ссылки Резюме Вопросы для самоконтроля Глава 28. Реализация перетаскивания Исследование перетаскивания Основы перетаскивания в Android 3.0 и последующих версиях Пример приложения со средствами перетаскивания Список файлов Компоновка для примера приложения со средствами перетаскивания Реагирование на события onDrag в зоне сбрасывания Настройка представлений источника перетаскивания Тестирование примера приложения со средствами перетаскивания Ссылки Резюме Вопросы для самоконтроля Глава 29. Использование датчиков Что собой представляет датчик Обнаружение датчиков Сведения, которые можно получить о датчике Получение событий датчика Проблемы с получением данных от датчиков Метод onAccuracyChanged() все время сообщает одно и то же Отсутствует прямой доступ к значениям датчиков Значения датчика не отправляются достаточно быстро Датчики выключаются вместе с экраном Интерпретация данных от датчиков Датчики освещенности Датчики приближения Датчики температуры Датчики давления Датчики типа гироскопов Акселерометры Датчики магнитного поля Совместное использование акселерометров и датчиков магнитного поля Датчики ориентации Магнитное склонение и GeomagneticField Датчик гравитации Датчики линейного ускорения Датчики вектора поворота Датчики NFC Ссылки Резюме Вопросы для самоконтроля Глава 30. Исследование API-интерфейса для работы с контактами Учетные записи Краткий обзор экранов, связанных с учетными записями Отношения между учетными записями и контактами Перечисление учетных записей Освоение приложения для работы с контактами Введение в персональный профиль Просмотр контактов Просмотр деталей контакта Редактирование деталей контакта Установка фотографии для контакта Экспорт контактов Различные типы данных контактов Что собой представляют контакты Исследование баз данных SQLite для хранения контактов Низкоуровневые контакты Таблица данных Агрегированные контакты Представление view_contacts Представление contact_entities_view Работа с API-интерфейсом контактов Просмотр учетных записей Просмотр агрегированных контактов Просмотр низкоуровневых контактов Просмотр данных низкоуровневого контакта Добавление контакта и его деталей Управление агрегированием Влияние синхронизации Исследование персонального профиля Чтение низкоуровневых контактов профиля Чтение данных контакта профиля Добавление данных к персональному профилю Ссылки Резюме Вопросы для самоконтроля Глава 31. Развертывание готового приложения: Android Market и другие возможности Как стать издателем Следование правилам Консоль разработчика Подготовка приложения к продаже Тестирование на различных устройствах Поддержка экранов разных размеров Подготовка файла AndroidManifest.xml к загрузке Локализация приложения Подготовка значка приложения Соображения по поводу того, как зарабатывать на приложениях Перенаправление пользователей обратно на Android Market Служба лицензирования Android Использование средства ProGuard для оптимизации и противостояния пиратству Подготовка файла.apk для загрузки Загрузка приложения Графика Перечисление детальных сведений Опции публикации Контактная информация Согласие Пользовательский интерфейс Android Market Другие возможности, отличные от Android Market Ссылки Резюме Вопросы для самоконтроля Предметный указатель