Android. Сборник рецептов

Задачи и решения для разработчиков приложений.

Дарвин Ян Ф. «Android. Сборник рецептов» Вильямс, 2018 год, 768 стр., 2-е изд., ISBN: 978-5-9909446-0-2; (90,0 мб. pdf)

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

Второе издание содержит рецепты для работы с пользовательскими интерфейсами, мультисенсорными жестами, механизмами определения местоположения, веб-службами и конкретными возможностями устройства, такими как телефон, видеокамера и акселерометр. Вы также научитесь упаковывать свое приложение для магазина Google Play Market. Книга идеально подходит для разработчиков, владеющими языком Java, основами платформы Android и интерфейса Java SE API. Она содержит рецепты, предоставленные более чем тридцатью разработчиками. Каждый рецепт содержит четкое решение и пример кода, готовый к использованию.

Оглавление книги

Содержание.

Глава 1. Введение 27
1.1. Понимание архитектуры приложений Android 27
1.2. Общие сведения о жизненном цикле активности Android 29
1.3. Изучение версий платформы Android 31
1.4. Изучение языка lava 34
1.5. Создание приложения «Hello, World» из командной строки 35
1.6. Создание приложения «Hello, World» с помощью каркаса Apache Maven 40
1.7. Выбор среды разработки для платформы Android 43
1.8. Настройка среды Android Studio 46
1.9. Установка версий платформ и сохранение обновлений SDK 49
1.10. Создание приложения «Hello, world» с помощью среды Android Studio 53
1.11. Преобразование проекта Eclipse ADT в Android Studio 58
1.12. Сохранение истории путем преобразования из Eclipse в Android Studio 61
1.13. Создание приложения для платформы Android с помощью сред Eclipse и Android Studio 63
1.14. Настройка Eclipse с помощью AndMore (замены платформы ADT) 66
1.15. Создание приложения «Hello, World» с использованием среды Eclipse 73
1.16. Установка компонента Marketplace Client в среде Eclipse 78
1.17. Обновление проекта с Eclipse ADT до Eclipse AndMore 80
1.18. Управление эмуляторами/устройствами с использованием инструмента командной строки ADB 84
1.19. Совместное использование классов Java из другого проекта Eclipse 86
1.20. Ссылки на библиотеки для реализации внешней функциональности 89
1.21. Использование новых функций на старых устройствах с помощью библиотек совместимости 93
1.22. Использование образцов SDK для предотвращения упрощения работы 95
1.23. Получение снимка экрана/видео с эмулятора/устройства Android 97
1.24. Программа: простой пример CountDownTimer 103
1.25. Программа: Tipster, калькулятор подсказок для ОС Android 106

Глава 2. Разработка успешного приложения 123
2.1. Обработка исключений 127
2.2. Запросы разрешений от системы Android во время выполнения 130
2.3. Доступ к объекту приложения Android как синглтону 133
2.4. Сохранение данных, когда пользователь поворачивает устройство 135
2.5. Контроль уровня заряда аккумулятора устройства Android 138
2.6. Создание заставки на платформе Android 139
2.7. Проектирование приложения для конференции BarCamp/хакатона/совещания 144
2.8. Использование Google Analytics в приложении для платформы Android 146
2.9. Настройка параметров первого запуска 148
2.10. Форматирование чисел 150
2.11. Форматирование с правильн ым множествен ным числом 154
2.12. Форматирование времени и даты 157
2.13. Упрощение расчетов даты и времени с помощью API java.time версии Java 8 160
2.14. Управление вводом с помощью класса KeyListener 162
2.15. Резервное копирование данных приложений на платформе Android 165
2.16. Использование своих подсказок вместо инструментальных 172

Глава 3. Тестирование приложений 175
3.1. Настройка виртуального устройства Android (AVD) для приложения AppTesting 176
3.2. Облачное тестирование на широком диапазоне устройств 182
3.3. Тестирование с помощью Eclipse и JUnit 183
3.4. Тестирование с помощью среды Android Studio и библиотеки JUnit 186
3.5. Тестирование с помощью библиотек Robolectric и JUnit 4 191
3.6. Тестирование с помощью ATSL, Espresso и JUnit 194
3.7. Устранение сбоев в работе приложений 198
3.8. Отладка с использованием Log.d() и LogCat 202
3.9. Автоматическое получение отчетов об ошибках с помощью механизмов сообщения о сбоях 203
3.10. Использование локального журнала приложений времени выполнения для анализа ошибок или ситуаций 206
3.11. Воспроизведение сценариев жизненного цикла активности для тестирования 210
3.12. Ускорение работы приложения с помощью интерфейса StrictMode 215
3.13. Тестирование статического кода с помощью Android Lint 216
3.14. Динамическое тестирование с помощью программы Monkey 218
3.15. Отправка текстовых сообщений и размещение вызовов между AVD 221

Глава 4. Внутренне и внешнее взаимодействие 223
4.1. Открытие веб-страницы, набор номера телефона или другое намерение 223
4.2. Отправка текста по электронной почте из представления 226
4.3. Отправление электронной почты с вложениями 229
4.4. Выталкивание строковых значений с помощью метода intent.putextra () 231
4.5. Извлечение данных из дочерней активности действия в основную 232
4.6. Продолжение выполнения приложения в фоновом режиме, пока на экране выполняется другое приложение 235
4.7. Отправление/получение широковещательных сообщений 237
4.8. Запуск службы после перезагрузки устройства 238
4.9. Создание реагирующего приложения, использующего потоки 239
4.10. Использование класса AsyncTask для выполнения фоновой обработки 241
4.11. Отправление сообщений между потоками с помощью очереди потоков активности и обработчика 248
4.12. Создание календаря с помощью библиотеки Epoch HTML/JavaScript 250

Глава 5. Графика 257
5.1. Использование специального шрифта 257
5.2. Рисование вращающегося куба с помощью библиотеки OpenGL ES 260
5.3. Добавление элементов управления к вращающемуся кубу с помощью библиотеки OpenGL 264
5.4. Свободное рисование гладких кривых 267
5.5. Съемка с помощью намерения 272
5.6. Съемка с использованием android.media.Camera 274
5.7. Сканирование штрих- или QR-кода с помощью сканера Google ZXing 278
5.8. Использование библиотеки AndroidPlot для отображения диаграмм и графиков 281
5.9. Использование программы Inkscape для создания пиктограммы запуска Android из OpenClipArt.org 284
5.10. Использование приложения Paint.NET для создания пиктограмм запуска из OpenClipArt.org 289
5.11. Использование файлов NinePatch 296
5.12. Создание графиков HTML5 с помощью библиотеки Android RGraph 300
5.13. Добавление простой растровой анимации 304
5.14. Использование щипка для увеличения изображения 307

Глава 6. Графический интерфейс пользователя 311
6.1. Понимание и следование принципам разработки пользовательского интерфейса 313
6.2. Реализация внешнего вида в соответствии с парадигмой Material Design 314
6.3. Выбор менеджера компоновки (ViewGroup) и создание компонентов 318
6.4. Обработка изменений конфигурации путем отсоединения представления от модели 319
6.5. Управление панелью действий 322
6.6. Добавление действия Share в панель действий 327
6.7. Создание современных пользовательских интерфейсов с помощью интерфейсов прикладного программирования для работы с фрагментами 330
6.8. Создание кнопки и ее слушателя событий 335
6.9. Улучшение дизайна пользовательского интерфейса с помощью кнопок с изображениями 336
6.10. Использование класса FloatingActionButton 338
6.11. Подключение слушателя событий разными способами 340
6.12. Использование классов CheckBox и RadioButton 345
6.13. Использование виджетов CARD 349
6.14. Выбор пункта в выпадающем списке с помощью класса Spinner 352
6.15. Обработка событий длительного нажатия и долгого щелчка 355
6.16. Отображение текстовых полей с помощью классов TextView и EditText 356
6.17. Ограничение значений EditText атрибутами и интерфейсом TextWatcher 357
б. 18. Реализация компонента AutoCompleteTextView 360
6.19. Заполнение представления AutocoepleteTextView с использованием запроса SQLiteDatabase 361
6.20. Включение полей редактирования в поля пароля 363
6.21. Изменение клавиши ввода на кнопку Next на экранной клавиатуре 364
6.22. Обработка событий нажатия клавиш в активности 367
6.23. Пусть они увидят звезды: использование класса RatingBar 368
6.24. Создание вибрирующего представления 372
6.25. Обеспечение тактильной обратной связи 374
6.26. Навигация по разным активностям внутри вкладки 377
6.27. Создание экрана загрузки, который будет отображаться между двумя действиями 379
6.28. Добавление в компоновку границы с закругленными углами 381
6.29. Обнаружение жестов в системе Android 383
6.30. Создание простого виджета приложения 391

Глава 7. Оповещения графического пользовательского интерфейса: меню, диалоги, тосты, панели сообщений и уведомления 395
7.1. Предупреждение пользователя с помощью классов Toast и Snackbar 396
7.2. Настройка внешнего вида тоста 398
7.3. Создание и отображение меню 399
7.4. Выбор пункта меню 401
7.5. Создание подменю 402
7.6. Создание диалогового окна всплывающих окон/оповещений 404
7.7. Использование виджета Timepicker 406
7.8. Создание iPhone-подобного элемента WheelPicker для выбора 408
7.9. Создание диалогового окна с вкладками 411
URL-адрес для загрузки исходного кода 414
7.10. Создание компонента ProgressDialog 414
URL-адрес для загрузки исходного кода 415
7.11. Создание пользовательского диалога с кнопками, изображениями и текстом 415
7.12. Создание многоразового класса AboutBox 417
URL-адрес для загрузки исходного кода 421
7.13. Создание уведомления в строке состояния 422
URL-адрес для загрузки исходного кода 426

Глава 8. Другие элементы графического пользовательского интерфейса: списки и представления 427
8.1. Создание приложений на основе списка с помощью класса RecyclerView 427
8.2. Создание приложений на основе списка с помощью класса ListView 431
8.3. Создание представления No data для компонента ListView 436
8.4. Создание расширенного списка с изображениями и текстом 437
8.5. Использование заголовков разделов в представлении ListView 441
8.6. Сохранение компонента ListView с фокусом пользователя 446
8.7. Написание адаптера пользовательского списка 447
8.8. Использование класса SearchView для поиска данных в компоненте ListView 451
8.9. Обработка изменения ориентации: от значений в компоненте ListView до альбомных диаграмм 453

Глава 9. Мультимедиа 459
9.1. Воспроизведение видео на YouTube 459
9.2. Захват видео с помощью компонента MediaRecorder 460
9.3. Возможности Android для обнаружения лиц 463
9.4. Воспроизведение аудио из файла 467
9.5. Воспроизведение аудио без взаимодействия 469
9.6. Преобразован ие речи в текст 471
9.7. Воспроизведение голоса устройством после преобразования текста в речь 472

Глава 10. Хранение данных 475
10.1. Чтение и запись файлов во внутреннем и внешнем хранилищах 476
10.2. Получение информации о файлах и каталогах 480
10.3. Чтение файла, поставляемого с приложением, а не в файловой системе 486
10.4. Получение информации об объеме памяти на SD-карте 488
10.5. Создание активности для установки предпочтений 488
10.6. Проверка согласованности общих настроек по умолчанию 494
10.7. Использование базы данных SQLite в приложении для платформы Android 496
10.8. Выполнение расширенных поисков текста в базе SQLiteDatabase 500
10.9. Работа с датами в базе SQLite 505
10.10. Отображение данных, отличных от SQL, в виде курсора SQL 508
10.11. Отображение данных с помощью класса CursorLoader 511
10.12. Разбор формата ISON с помощью ISONObject 515
10.13. Анализ XML-документа с использованием DOM API 516
10.14. Хранение и получение данных через поставщика контента 518
10.15. Создание поставщика контента 520
10.16. Добавление контакта через провайдера контента приложения Contacts 523
10.17. Чтение контактных данных с помощью провайдера контента 527
10.18. Реализация перетаскивания 529
10.19. Обмен файлами через объект класса Pile Provider 533
10.20. Резервное копирование данных SQL і се в облако с помощью класса aSyncAdapter 538
10.21. Хранение данных в облаке с помощью базы данных Google Firebase 549

Глава 11. Телефонные приложения 555
11.1. Реакция на телефонный звонок 555
11.2. Обработка исходящих телефонных звонков 559
11.3. Набор номера телефона 563
11.4. Отправка SMS-сообщений, состоящих из одной или нескольких частей 564
11.5. Получение SMS-сообщения 567
11.6. Использование представления Emulator Control для отправки SMS-сообщений на эмулятор 568
11.7. Использование класса TelephonyManager платформы Android для получения информации об устройстве 569

Глава 12. Сетевые приложения 581
12.1. Использование веб-службы RESTful с использованием класса URLConnection 582
12.2. Использование веб-службы RESTful с помощью библиотеки Volley 584
12.3. Получение вашим приложением сообщений от службы Google Cloud Messaging 587
12.4. Извлечение информации из неструктурированного текста с использованием регулярных выражений 596
12.5. Анализ каналов RSS/atom с использованием проекта ROME 598
12.6. Использование алгоритма MD5 для создания нечитаемых сообщений 602
12.7. Преобразование текста в гиперссылки 603
12.8. Доступ к веб-странице с помощью компонента WebView 604
12.9. Настройка компонента WebView 605
12.10. Создание службы для межпроцессного обмена 606

Глава 13. Игры и анимация 611
13.1. Создание Android-игры с помощью каркаса flixel-gdx 612
13.2. Создание игры для платформы Android с помощью каркаса AndEngine 617
13.3. Обработка клавиатуры с учетом времени 623

Глава 14. Социальные сети 625
14.1. Аутентифи кация пользователей с помощью протокола OAUTH2 625
14.2. Интеграция социальных сетей с использованием протокола HTTP 629
14.3. Загрузка временной шкалы пользователя Twitter с помощью HTML или JSON 632

Глава 15. Определение местоположения и работа с картами 635
15.1. Получение информации о местоположении 635
15.2. Доступ к GPS-информации в вашем приложении 637
15.3. Фальсификация GPS-координат устройства 639
15.4. Использование прямого и обратного геокодирования 642
15.5. Подготовка к разработке приложений с помощью интерфейса Google Maps API V2 643
15.6. Использование Google MAPS API V2 648
15.7. Отображение данных карты с помощью проекта OpenStreetMap 653
15.8. Создание наложений в картах OpenStreetMap 657
15.9. Использование шкалы масштаба на картах OpenStreetMap 659
15.10. Обработка событий касания на OpenStreetMapOverlay 660
15.11. Получение обновленных координат с помощью карт проекта OpenStreetMap 663

Глава 16. Акселерометр 667
16.1. Проверка наличия или отсутствия датчика 667
16.2. Использование акселерометра для обнаружения тряски 668
16.3. Проверка пространственной ориентации устройства: экраном вверх или вниз 672
16.4. Считывание данных с датчика температуры 673

Глава 17. Технология Bluetooth 675
17.1. Включение механизма Bluetooth и создание устройства для обнаружения 675
17.2. Подключение к устройству с поддержкой технологии Bluetooth 677
17.3. Прием соединений с устройства Bluetooth 680
17.4. Реализация обнаружения устройств Bluetooth 681

Глава 18. Управление системой и устройством 683
18.1. Доступ к информации о телефонной сети или Интернету 683
18.2. Получение информации из файла манифеста 684
18.3. Изменение уведомления о входящем вызове на бесшумное, вибрационное или нормальное 685
18.4. Копирование и получение текста из буфера обмена 687
18.5. Использование уведомлений на основе светодиодов 688
18.6. Вибрация устройства 689
18.7. Определение того, выполняется ли данное приложение 690

Глава 19. Не все программируют на Java: другие языки программирования и платформы 691
19.1. Изучение кроссплатформенных решений 692
19.2. Выполнение команд оболочки из вашего приложения 694
19.3. Запуск собственного кода на языке С/С ++ с помощью механизма JNI из пакета NDK 696
19.4. Начало работы с библиотекой SL4A (Scripting Layer for Android) 701
19.5. Создание предупреждений в приложении SL4A 704
19.6. Извлечение документов Google и отображение в элементе Listview с помощью приложения SL4A 707
19.7. Распространение сценариев SL4A в QR-кодах 710
19.8. Использование функциональных возможностей мобильных телефонов с помощью механизма Web View и языка JavaScript 712
19.9. Создание кроссплатформенного приложения с помощью каркаса Xamarin 714
19.10. Создание кроссплатформенного приложения с помощью PhoneGap/Cordova 719

Глава 20. Не все говорят по-английски: строки и интернационализация 723
Основные шаги: интернационализация 723
20.1. Интернационализация текста приложения 724
20.2. Поиск и перевод строк 727
20.3. Обработка нюансов, связанных с файлом strings. xml 729

Глава 21. Упаковка, развертывание и распространение приложения 735
21.1. Создание сертификата подписи и его использование
для подписи приложения 735
21.2. Распространение вашего приложения через Google PlayStore 739
21.3. Распространение вашего приложения через другие магазины приложений 741
21.4. Монетизация вашего приложения с помощью библиотеки AdMob 742
21.5. Запутывание кода и оптимизация с помощью инструмента ProGuard 748
21.6. Хостинг вашего приложения на вашем собственном сервере 751
21.7. Создание самообновляющейся прикладной программы 753
21.8. Предоставление ссылки на другие приложения, опубликованные на сайте Google Play Store 755
Предметный указатель 759

СкачатьPDF

Похожая литература