Информация о книге

978-5-496-00502-9

Главная  » Тематика определяется » Программирование под Android. Для профессионалов

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


серия: Для профессионалов
Питер, 2014 г., 978-5-496-00502-9


Описание книги

Эта книга научит вас всем тонкостям разработки приложений для мобильных устройств, работающих на популярной операционной системе Android. Основанное на учебном курсе известного образовательного IT-проекта Big Nerd Ranch, это издание содержит ключевые концепции программирования в Android, разъяснение API и множество примеров кода и упражнений. В процессе работы с книгой читатель самостоятельно разработает восемь Android-приложений разной сложности и тематики, включая клиент для загрузки фотографий из базы Flickr, приложение, имитирующее телевизионный пульт дистанционного управления, а также сервис геолокации, отслеживающий перемещения пользователя по всему свету и отображающий их на карте. Все учебные приложения были спроектированы таким образом, чтобы продемонстрировать важные концепции и приемы программирования под Android и дать опыт их практического применения.

Ключевые слова


  Android 


Поделиться ссылкой на книгу



Содержание книги

Благодарности
Изучение Android,
Глава 1. Первое приложение Android
Основы построения приложения
Создание проекта Android
Навигация в Eclipse
Построение макета пользовательского
интерфейса
Иерархия представлений
Атрибуты виджетов
android:layout_width и android:layout_height
android :onentation
android :text
Создание строковых ресурсов
Предварительный просмотр макета
От разметки XML к объектам View
Ресурсы и идентификаторы ресурсов
Подключение виджетов к программе
Организация импорта
Получение ссылок на виджеты
Назначение слушателей
Анонимные внутренние классы
Уведомления
Автозавершение
Выполнение в эмуляторе
Для любознательных: процесс построения
приложений Android
Средства построения программ Android
Глава 2. Android и MVC,
Создание нового класса
Генерирование get- и set-методов
Архитектура
"Модель-Представление-Контроллер" и Android
Преимущества MVC
Обновление уровня представления
Обновление уровня контроллера
Запуск на устройстве
Подключение устройства
Настройка устройства для разработки
Добавление значка
Добавление ресурсов в проект
Ссылки на ресурсы в XML
Упражнения
Упражнение. Добавление слушателя для TextView
Упражнение. Добавление кнопки возврата
Упражнение. От Button к ImageButton
Глава 3. Жизненный цикл Activity
Регистрация событий жизненного цикла Activity
Создание сообщений в журнале
Использование LogCat
Повороты и жизненный цикл активности
Конфигурации устройств и альтернативные
ресурсы
Создание макета для альбомной ориентации
Сохранение данных между поворотами
Переопределение onSavelnstanceState(Bundle)
Снова о жизненном цикле Activity
Для любознательных: тестирование
onSavelnstanceState(Bundle).
Для любознательных: методы и уровни
регистрации
Глава 4. Отладка приложений Android
Перспектива DDMS
Исключения и трассировка стека
Диагностика ошибок поведения
Сохранение трассировки стека
Установка точек прерывания
Прерывания по исключениям
File Explorer
Особенности отладки Android
Android Lint
Проблемы с классом R
Глава 5. Вторая активность
Создание второй активности
Создание нового макета
Создание нового субкласса активности
Объявление активностей в манифесте
Добавление кнопки Cheat в QuizActivity
Запуск активности
Передача информации через интенты
Интенты явные и неявные
Передача данных между активностями
Дополнения интентов
Получение результата от дочерней активности
Передача результата
Возвращение интента
Обработка результата
Ваши активности с точки зрения Android
Упражнение
Глава 6. Версии Android SDK и совместимость,
Версии Android SDK
Совместимость и программирование Android
Трудности с Honeycomb
Минимальная версия SDK (Minimum Required SDK)
Целевая версия SDK (Target SDK)
Версия SDK для построения (Compile With)
Безопасное добавление кода для более поздних
версий API
Подавление ошибок совместимости Lint
Документация разработчика Android
Упражнение. Вывод версии построения
Глава 7. UI-фрагменты и FragmentManager,
Гибкость пользовательского интерфейса
Знакомство с фрагментами
Начало работы над Criminallntent
Создание нового проекта
Фрагменты и библиотека поддержки
Создание класса Crime
Хостинг UI-фрагментов
Жизненный цикл фрагмента
Два способа организации хостинга
Определение контейнерного представления
Создание UI-фрагмента
Определение макета CrimeFragment
Создание класса CrimeFragment
Реализация методов жизненного цикла фрагмента
Подключение виджетов в фрагменте
Добавление UI-фрагмента в FragmentManager
Транзакции фрагментов
FragmentManager и жизненный цикл фрагмента
Почему все наши активности используют
фрагменты
Для любознательных: разработка для Honeycomb,
ICS, Jelly Bean и т. д.
Глава 8. Макеты и виджеты
Обновление Crime
Обновление макета
Подключение виджетов
Подробнее об атрибутах макетов XML
Стили, темы и атрибуты тем
Плотность пикселов, dp и sp
Рекомендации по проектированию интерфейсов
Android
Параметры макета
Поля и отступы
Использование графического конструктора
Добавление нового виджета
Редактирование атрибутов в свойствах
Реорганизация виджетов на панели структуры
Обновление параметров макета потомков
Как работает android:layout_weight
Графический конструктор макетов
Идентификаторы виджетов и множественные
макеты
Упражнение. Форматирование даты
Глава 9. Вывод списков и ListFragment
Обновление уровня модели Criminallntent
Синглеты и централизованное хранение данных
Создание ListFragment
Абстрактная активность для хостинга фрагмента
Обобщенный макет для хостинга фрагмента
Абстрактный класс Activity
Использование абстрактного класса
Объявление CrimeListActivity
ListFragment, ListView и ArrayAdapter
Создание ArrayAdapter<T>
Щелчки на элементах списка
Настройка элементов списка
Создание макета элемента списка
Создание субкласса адаптера
Глава 10. Аргументы фрагментов
Запуск активности из фрагмента
Включение дополнения
Чтение дополнения
Обновление представления CrimeFragment
данными Crime
Недостаток прямой выборки
Аргументы фрагментов
Присоединение аргументов к фрагменту
Получение аргументов
Перезагрузка списка
Получение результата с использованием
фрагментов
Глава 11. ViewPager
Создание CrimePagerActivity
Формирование макетов представлений в коде
Автономные идентификаторы ресурсов
ViewPager и PagerAdapter
Интеграция CrimePagerActivity
FragmentStatePagerAdapter и FragmentPagerAdapter
Для любознательных: как работает ViewPager
Глава 12. Диалоговые окна
Создание DialogFragment
Отображение DialogFragment
Назначение содержимого диалогового окна
Передача данных между фрагментами
Передача данных DatePickerFragment
Возвращение данных CrimeFragment
Назначение целевого фрагмента
Передача данных целевому фрагменту
Больше гибкости в представлении DialogFragment
Упражнение. Новые диалоговые окна
Глава 13. Воспроизведение звука и MediaPlayer
Добавление ресурсов
Определение макета HelloMoonFragment
Сброс темы приложения
Создание класса HelloMoonFragment
Использование фрагмента макета
Воспроизведение аудио
Подключение кнопок воспроизведения и
остановки
Упражнение. Приостановка воспроизведения
Для любознательных: воспроизведение видео
Упражнение. Воспроизведение видео в HelloMoon
Глава 14. Сохранение фрагментов
Сохранение фрагмента
Повороты и сохраненные фрагменты
Сохранение фрагментов: действительно так
хорошо?
Повороты и onSavelnstanceState(Bundle)
Для любознательных: повороты до появления
фрагментов
Глава 15. Локализация
Локализация ресурсов
Ресурсы по умолчанию
Плотность пикселов и ресурсы по умолчанию
Конфигурационные квалификаторы
Приоритеты альтернативных ресурсов
Множественные квалификаторы
Поиск наиболее подходящих ресурсов
Исключение несовместимых каталогов
Перебор таблицы приоритетов
Дополнительные правила использования ресурсов
Имена ресурсов
Структура каталогов ресурсов
Тестирование альтернативных ресурсов
Глава 16. Панель действий
Командное меню
Определение командного меню в XML
Использование системных значков
Создание командного меню
Реакция на выбор команд
Включение иерархической навигации
Включение значка приложения
Обработка кнопки Up
Альтернативная команда меню
Создание альтернативного файла меню
Переключение текста команды
"Да, и еще одно "
Упражнение. Пустое представление для списка
Глава 17. Сохранение и загрузка локальных
файлов
Сохранение и загрузка данных в Criminallntent
Сохранение преступлений в файле JSON
Создание класса CriminallntenUSONSeriahzer
Поддержка сериализации JSON в классе Crime
Сохранение объектов Crime в CrimeLab
Сохранение данных приложения в onPause()
Загрузка данных из файловой системы
Упражнение. Использование внешнего хранилища
Для любознательных: файловая система Android и
средства ввода-вывода Java
Обращение к файлам и каталогам
Глава 18. Контекстные меню и режим контекстных
действий
Определение ресурса контекстного меню
Реализация контекстного меню
Создание контекстного меню
Регистрация контекстного меню
Реакция на действие
Реализация режима контекстных действий
Множественное выделение
Методы обратного вызова режима действий в
представлении списка
Изменение фона выделенных элементов
Реализация режима контекстных действий в
других представлениях
Совместимость: отход или дублирование?
Упражнение. Удаление из CrimeFragment
Для любознательных: ActionBarSherlock
Упражнение. Использование ActionBarSherlock
Базовая интеграция ABS в Crimmallntent
Интеграция более высокого уровня
Интеграция еще более высокого уровня
Глава 19. Камера I: Viewfinder
Создание макета фрагмента
Создание класса CrimeCameraFragment
Создание класса CrimeCameraActivity
Включение активности и разрешений камеры в
манифест
Использование API камеры
Открытие и освобождение камеры
SurfaceView, SurfaceHolder и Surface
Определение размера области предварительного
просмотра
Запуск CrimeCameraActivity из CrimeFragment
Скрытие панели состояния и панели действий
Для любознательных: запуск активностей из
командной строки
Глава 20. Камера II: Съемка и обработка
изображений
Получение снимка
Реализация обратных вызовов камеры
Назначение размера изображения
Передача данных CrimeFragment
Запуск CrimeCameraActivity с возвращением
результата
Назначение результата в CrimeCameraFragment
Получение имени файла в CrimeFragment
Обновление уровня модели
Добавление класса Photo
Включение в Crime свойства для хранения
фотографии
Сохранение ссылки на фотографию
Обновление представления CrimeFragment
Добавление ImageView
Обработка изображения
Добавление масштабированных фотографий в
ImageView
Выгрузка изображения
Отображение полноразмерных изображений в
DialogFragment
Упражнение. Ориентация изображения в Crime
Упражнение. Удаление фотографий
Для любознательных: устаревшие конструкции в
Android
Глава 21. Неявные интенты
Добавление кнопок
Добавление имени в уровень модели
Форматные строки
Использование неявных интентов
Компоненты неявного интента
Отправка отчета
Запрос контакта у Android
Получение данных из списка контактов
Разрешения контактов
Проверка реагирующих активностей
Упражнение. Другой неявный интент
Глава 22. Двухпанельные интерфейсы
Гибкость макета
Модификация SingleFragmentActivity
Создание макета с двумя контейнерами
фрагментов
Использование ресурса-псевдонима
Создание альтернативы для планшета
Активность: управление фрагментами
Интерфейсы обратного вызова фрагментов
Реализация CrimeFragment.Callbacks
Для любознательных: подробнее об определении
размера экрана.
Глава 23. Подробнее об интентах и задачах
Создание приложения NerdLauncher
Обработка неявного интента
Создание явных интентов на стадии выполнения
Задачи и стек возврата
Использование NerdLauncher в качестве
домашнего экрана
Упражнение. Значки, изменение порядка задач
Для любознательных: процессы и задачи
Глава 24. Стили и включения
Создание проекта RemoteControl
Создание RemoteControl Activity
Создание RemoteControl Fragment
Стили и компактность разметки
Завершение разметки
Для любознательных: include и merge
Упражнение. Наследование стилей
Глава 25. Графические объекты
Графические объекты XML
Списки состояний
Списки слоев и смещение
9-зонные изображения
Глава 26. HTTP и фоновые задачи
Создание приложения PhotoGallery
Основы сетевой поддержки
Разрешение на работу с сетью
Использование AsyncTask для выполнения в
фоновом потоке
Главный программный поток
Кроме главного потока
Загрузка XML из Fhckr
Использование XmlPullParser
От AsyncTask к главному потоку
Для любознательных: подробнее об AsyncTask
Уничтожение AsyncTask
Упражнение. Страничная навигация
Глава 27. Looper, Handler и HandlerThread
Подготовка GndView к выводу изображений
Множественные загрузки
Взаимодействие с главным потоком
Создание фонового потока
Сообщения и обработчики сообщений
Строение сообщения
Строение обработчика
Использование обработчиков
Передача Handler
Для любознательных: AsyncTask и потоки
Упражнение. Предварительная загрузка и
кэширование
Глава 28. Поиск
Поиск в Fhckr
Диалоговое окно поиска
Создание поискового интерфейса
Поисковые активности
Аппаратная кнопка поиска
Как работает поиск
Режимы запуска и новые интенты
Простое сохранение с использованием механизма
общих настроек
Использование SearchView в Android версий выше
3.0
Упражнения
Глава 29. Фоновые службы
Создание IntentService
Зачем нужны службы
Безопасные сетевые операции в фоновом режиме
Поиск новых результатов
Отложенное выполнение и AlarmManager
Pendmglntent
Управление сигналами с использованием
Pendmglntent
Управление сигналом
Обновление элемента командного меню
Оповещения
Для любознательных: подробнее о службах
Что делают (и чего не делают) службы
Жизненный цикл службы
Незакрепляемые службы
Закрепляемые службы
Привязка к службам
Локальная привязка к службам
Удаленная привязка к службе
Глава 30. Широковещательные интенты
Пробуждение при загрузке
Широковещательные приемники в манифесте
Использование приемников
Фильтрация оповещений переднего плана
Отправка широковещательных интентов
Динамические широковещательные приемники
Закрытые разрешения
Подробнее об уровнях защиты
Получение результатов с упорядоченной
широковещательной рассылкой
Приемники и продолжительные задачи
Глава 31. Просмотр веб-страниц и WebView
И еще один блок данных Fhckr
Простой способ: неявные интенты
Более сложный способ: WebView
Класс WebChromeChent
Повороты в WebView
Для любознательных: внедрение объектов
JavaScript
Глава 32. Пользовательские представления и
события касания
Создание проекта DragAndDraw
Создание класса DragAndDrawActivity
Создание класса DragAndDrawFragment
Создание нестандартного представления
Создание класса BoxDrawingView
Обработка событий касания
Отслеживание перемещений между событиями
Рисование внутри onDraw( )
Упражнение: повороты
Глава 33. Отслеживание местоположения
устройства
Создание приложения RunTracker
Создание класса RunActivity
Класс RunFragment
Добавление строк
Файл макета
Создание класса RunFragment
Местоположение и LocationManager
Получение широковещательных обновлений
местоположения
Обновление пользовательского интерфейса
данными местоположения
Ускорение отклика: последнее известное
местоположение
Тестирование на реальных и виртуальных
устройствах
Глава 34. Локальные базы данных и SQLite
Хранение серий и позиций в базе данных
Запрос списка серий из базы данных
Вывод списка серий с использованием
CursorAdapter
Создание новых серий
Работа с существующими сериями
Упражнение: выделение текущей серии
Глава 35. Асинхронная загрузка данных
Loader и LoaderManager
Использование загрузчиков в RunTracker
Загрузка списка серий
Загрузка одной серии
Загрузка последней позиции в серии
Глава 36. Карты
Добавление Maps API в приложение RunTracker
Тестирование на реальном устройстве
Установка и использование Google Play services
SDK
Получение ключа Google Maps API
Обновление манифеста RunTracker
Вывод местоположения пользователя на карте
Вывод маршрута
Добавление маркеров начала и конца маршрута
Упражнение: оперативное обновление
Глава 37. Послесловие
Последнее упражнение
Бессовестная самореклама
Спасибо


Об авторе


Отзывы

Хорошая книга  [28 February 2014]
Книга-то хорошая, бесспорно. Но прошу обратить внимание, что перевод местами не корректен. Правда я купил книгу в пдф, не знаю как с бумажной версией. Временами просто приходилось сверяться с англоязычной версией книги (которую в интернете легко найти) и только по ней получалось уловить всю суть вопроса. Так что из минусов только адаптация книги на русский язык.
Отличная книга  [17 February 2014]
С самого начала книги формирует правильное виденье того как должны разрабатываться современные приложения под ос Android, рекомендую.
Лучшая книжка по Android  [19 January 2014]
Из представленных книг на рынке эта наиболее полно отражает актуальные тенденции и дает правильное предоставление о разработке под Android: архитектура приложения, стиль кода, особенности.
Однако новичкам будет тяжеловато освоить эту книгу.

Последние поступления в рубрике "Тематика определяется"



Коллекционное холодное оружие Западной Европы XVII - начала XIX вв. 

Издание посвящено уникальным образцам охотничьего и боевого холодного оружия из частных собраний европейских коллекционеров. Каждый экземпляр сопровождается экспертным описанием, оценкой степени его сохранности и подробными авторскими иллюстрациями....

Терапевтическая катастрофа. Мастера психотерапии рассказывают о самых провальных случаях 

Ни один психотерапевт не застрахован от ошибок в работе с клиентами, но мало кто готов открыто обсуждать собственные неудачи. Авторы книги решили наглядно показать, что просчеты и промахи - это не только неотъемлемая сторона профессии, но и повод вынести для себя ценные уроки....

Любовь к человеку с пограничным расстройством личности 

Люди с пограничным расстройством личности (ПРЛ) могут быть очень заботливыми, нежными, умными и веселыми - и при этом своим поведением отталкивать даже самых близких людей. Если у вас непростые отношения с человеком, который страдает от ПРЛ, то эта книга - для вас....

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Филлипс Б., Харди Б., Программирование под Android. Для профессионалов в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.