Оглавление
  Об авторах. 18
  О техническом редакторе. 20
  Благодарности. 21
  Предисловие. 22
  От издательства. 23
  Глава 1. Введение в компьютерную платформу Android. 24
  Новая платформа для нового персонального компьютера. 24
  История Android. 26
  Глубокий анализ Dalvik VM. 29
  Сравнение Android и Java ME. 30
  Программный стек Android. 33
  Разработка готовых пользовательских приложений при помощи Android SDK. 35
  Эмулятор Android. 35
  Пользовательский интерфейс Android. 36
  Базовые компоненты Android. 37
  Продвинутые концепции пользовательского интерфейса. 38
  Служебные компоненты Android. 41
  Медийные компоненты Android и компоненты, связанные
  с телефонией. 42
  Пакеты Java для Android. 44
  Использование преимуществ исходного кода Android. 48
  Резюме. 49
  Глава 2. Приступая к работе. 50
  Настройка среды разработки. 50
  Скачивание JDK 6. 51
  Скачивание Eclipse 3.5. 51
  8 Оглавление
  Скачивание Android SDK. 52
  Установка инструментов разработки для Android (ADT). 53
  Изучение базовых компонентов. 56
  Вид. 56
  Явление. 56
  Намерение. 56
  Поставщик содержимого. 57
  Службы. 57
  AndroidManifest.xml. 58
  Виртуальные устройства Android. 58
  Hello World!. 58
  Виртуальные устройства Android. 63
  Изучение структуры приложения в Android. 65
  Анализ приложения NotePad. 67
  Загрузка и запуск приложения NotePad. 68
  Подробный анализ приложения. 69
  Жизненный цикл приложения. 77
  Отладка вашего приложения. 81
  Резюме. 82
  Глава 3. Использование ресурсов, поставщиков содержимого
  и намерений. 83
  Ресурсы. 84
  Строковые ресурсы. 85
  Ресурсы разметки формы. 86
  Синтаксис ссылок на ресурсы. 88
  Определение собственных идентификационных номеров
  ресурсов для последующего использования. 90
  Скомпилированные и нескомпилированные ресурсы Android. 90
  Перечисление основных ресурсов Android. 92
  Работа с произвольными XML-файлами ресурсов. 99
  Использование необработанных ресурсов. 101
  Работа с активами. 102
  Просмотр структуры каталогов с ресурсами. 102
  Поставщики содержимого. 103
  Исследование встроенных поставщиков в Android. 104
  Архитектура поставщиков содержимого. 110
  Намерения. 136
  Намерения, имеющиеся в Android. 137
  Намерения и универсальные идентификаторы ресурсов данных. 139
  Оглавление 9
  Обобщенные действия. 140
  Использование дополнительной информации. 141
  Использование компонентов для непосредственного
  инициирования явления. 143
  Лучшие методы разработки компонентов. 144
  Категории намерений. 145
  Правила разложения намерений на их компоненты. 148
  Выполнение ACTION_PICK. 148
  Выполнение действия GET_CONTENT. 151
  Дополнительные ресурсы для углубленного изучения материала
  данной главы. 152
  Резюме. 153
  Глава 4. Создание пользовательских интерфейсов
  и использование элементов управления. 154
  Разработка пользовательских интерфейсов в Android в Android. 161
  Текстовые элементы управления. 161
  Элементы управления кнопки. 165
  Элементы управления списки. 171
  Элементы управления таблицы. 175
  Элементы управления датой и временем. 177
  Другие интересные элементы управления, имеющиеся в Android. 179
  Элемент управления MapView. 179
  Элемент управления галерея. 180
  Элемент управления счетчик. 180
  Диспетчеры шаблонов. 181
  Диспетчер шаблонов LinearLayout. 181
  Диспетчер шаблонов TableLayout. 185
  Диспетчер шаблонов RelativeLayout. 190
  Диспетчер шаблонов FrameLayout. 191
  Настройка расположения элементов для различных
  конфигураций устройств. 194
  Адаптеры. 196
  Знакомство с SimpleCursorAdapter. 197
  Знакомство с ArrayAdapter. 198
  Создание пользовательских адаптеров. 199
  Отладка и оптимизация шаблонов при помощи инструмента
  просмотра иерархии. 200
  Резюме. 202
  10 Оглавление
  Глава 5. Работа с меню и диалоговыми окнами. 203
  Меню в Android. 203
  Создание меню. 205
  Работа с группами меню. 206
  Отклик на элементы меню. 207
  Создание средства для тестирования меню. 209
  Работа с меню других типов. 216
  Расширенные меню. 216
  Работа с пиктографическими меню. 216
  Работа с подменю. 217
  Предпосылки для вставки системных меню. 218
  Работа с контекстными меню. 218
  Работа с альтернативными меню. 222
  Работа с меню при изменении данных. 225
  Загрузка меню при помощи XML-файлов. 226
  Структура XML-файла ресурсов, относящегося к меню. 226
  Наполнение XML-файлов ресурсов, относящихся к меню. 227
  Отклик на элементы меню, работающие на базе XML. 228
  Краткое описание дополнительных XML-тегов, используемых
  при работе с меню. 229
  Использование диалоговых окон в Android. 230
  Создание диалоговых окон с предупреждениями. 231
  Создание диалоговых окон с подсказками. 234
  Сущность диалоговых окон в Android. 239
  Переработка диалогового окна с подсказкой. 239
  Работа с управляемыми диалоговыми окнами. 240
  Протокол управляемых диалоговых окон. 240
  Преобразование неуправляемого диалогового окна в управляемое. 241
  Упрощение протокола управляемых диалоговых окон. 243
  Резюме. 251
  Глава 6. 2D-анимация: премьера. 252
  Покадровая анимация. 253
  Планирование покадровой анимации. 253
  Создание явления. 255
  Анимирование явления. 256
  Анимация шаблонов. 259
  Основные типы анимации с построением промежуточных кадров. 260
  Подготовка тестовой программы для испытания анимации шаблона. 261
  Создание явления и ListView. 262
  Оглавление 11
  Анимирование ListView. 264
  Работа с интерполяторами. 268
  Анимация видов. 270
  Общие сведения об анимации видов. 270
  Добавление анимации. 273
  Использование класса Camera для создания эффекта глубины
  изображения в 2D. 277
  Изучение класса AnimationListener. 278
  Несколько замечаний о матрицах преобразований. 279
  Резюме. 280
  Глава 7. Изучение вопросов безопасности и служб, основанных
  на местоположении. 281
  Модель обеспечения безопасности в Android. 281
  Oбзор концепций, связанных с безопасностью. 282
  Подписывание приложений для развертывания. 282
  Проверка безопасности системы во время исполнения. 287
  Безопасность на границе процессов. 288
  Определение и использование прав доступа. 288
  Специальные права доступа. 290
  Права доступа к URI и работа с ними. 296
  Работа со службами, основанными на местоположении. 297
  Пакет Mapping. 297
  Пакет Location. 310
  Резюме. 329
  Глава 8. Создание и использование служб. 330
  Использование HTTP-служб. 330
  Использование HttpClient для создания запросов HTTP GET. 331
  Использование HttpClient для создания запросов HTTP POST. 333
  Работа с исключениями. 336
  Решение задач, связанных с многопоточностью. 339
  Обеспечение межпроцессного обмена информацией. 343
  Создание простой службы. 343
  Службы в Android. 344
  Локальные службы. 346
  Службы AIDL. 350
  Описание служебного интерфейса на AIDL. 350
  Внедрение AIDL-интерфейса. 353
  Вызов службы из клиентского приложения. 355
  Передача комплексных типов службам. 359
  Резюме. 369
  12 Оглавление
  Глава 9. Использование медиафреймворка и интерфейсов API
  для функций телефонии. 370
  Использование медийных API-интерфейсов. 370
  Карты памяти. 371
  Воспроизведение аудио. 374
  Метод setDataSource. 378
  Воспроизведение видео. 380
  Характерные особенности MediaPlayer. 382
  Изучение аудиозаписи. 383
  Изучение видеозаписи. 388
  Изучение класса MediaStore. 393
  Добавление медийного контента в MediaStore. 398
  Использование API, обеспечивающих выполнение функций телефонии. 400
  Работа с SMS. 400
  Работа с диспетчером телефонии. 408
  Резюме. 409
  Глава 10. Программирование трехмерной графики
  при помощи OpenGL. 410
  История и основы OpenGL. 411
  OpenGL ES. 412
  OpenGL ES и Java ME. 413
  M3G — еще один стандарт трехмерной графики,
  применяемый в Java ME. 413
  Основы OpenGL. 414
  Важнейшие приемы рисования при помощи OpenGL ES. 415
  Камера и координаты в OpenGL. 421
  Взаимодействие OpenGL ES и Android. 425
  Использование GLSurfaceView и связанных классов. 426
  Простая тестовая программа, при помощи которой рисуется
  треугольник. 428
  Изменение настроек камеры. 431
  Использование индексов для добавления еще одного
  треугольника. 433
  Анимирование простого треугольника с применением OpenGL. 435
  Бросаем вызов OpenGL: контуры и текстуры. 438
  Простой прием работы с меню для демопримеров. 439
  Рисование прямоугольника. 445
  Работа с контурами. 447
  Работа с текстурами. 460
  Рисование нескольких фигур. 466
  Оглавление 13
  Ресурсы по OpenGL. 470
  Резюме. 471
  Глава 11. Управление настройками и их организация. 472
  Исследование фреймворка настроек. 472
  ListPreference. 472
  Управление настройками при помощи программирования. 481
  CheckBoxPreference. 481
  EditTextPreference. 484
  RingtonePreference. 485
  Организация настроек. 487
  Резюме. 490
  Глава 12. Изучение живых каталогов. 491
  Изучение живых каталогов. 491
  Живые каталоги с точки зрения пользователя. 492
  Создание живого каталога. 496
  Резюме. 507
  Глава 13. Виджеты основного экрана. 508
  Архитектура виджетов основного экрана. 509
  Что такое виджеты главного экрана. 509
  Как пользователь воспринимает виджеты основного экрана. 509
  Конфигуратор виджетов. 511
  Жизненный цикл виджета. 512
  Пример приложения, работающего с виджетами. 519
  Определение поставщика виджета. 520
  Определение размера виджета. 521
  Файлы, относящиеся к шаблону виджета. 522
  Реализация поставщика виджетов. 524
  Реализация моделей виджетов.527
  Реализация явления для конфигурации виджетов. 535
  Ограничения и дополнения, связанные с виджетами. 539
  Ресурсы. 540
  Резюме. 540
  Глава 14. Поиск в Android. 541
  Опыт поиска в Android. 542
  Исследование глобального поиска в Android. 542
  Включение поставщиков поиска для глобального использования. 546
  Взаимодействие поставщиков поиска и поля быстрого поиска (QSB). 549
  14 Оглавление
  Взаимодействие явлений и поисковых клавиш. 550
  Работа поисковой клавиши с обычным явлением. 551
  Работа с явлением, в котором отключена функция поиска. 559
  Инициирование поиска через меню. 560
  Локальный поиск и связанные с ним явления. 563
  Включение функции Type-to-Search. 567
  Реализация простого поставщика поиска. 568
  Планирование простого поставщика поиска. 569
  Файлы для реализации простого поставщика поиска. 569
  Реализация класса SimpleSuggestionProvider. 570
  Объявление поставщика поиска в файле описания. 572
  Понятие о поисковом явлении простого поставщика поиска. 573
  Явление инициирования поиска (search invoker). 578
  Опыт работы пользователей с простым поставщиком поиска. 579
  Реализация пользовательского поставщика поиска. 582
  Планирование пользовательского поставщика поиска. 583
  Файлы для реализации проекта SuggestURLProvider. 583
  Реализация класса SuggestUrlProvider. 584
  Реализация поискового явления для пользовательского
  поставщика поиска. 593
  Файл описания пользовательского поставщика поиска. 599
  Опыт работы с пользовательским поставщиком поиска. 600
  Использование клавиш действия и специфичных для приложения
  поисковых данных. 603
  Применение клавиш действия при поиске в Android. 603
  Работа с контекстом поиска, специфичным для конкретного
  приложения. 606
  Ресурсы. 608
  Резюме. 608
  Глава 15. Исследование текста для работы с API синтеза речи
  и интерфейсами машинного перевода. 609
  Основы синтеза речи в Android. 609
  Использование фрагментов речи для отслеживания речевой
  информации. 614
  Использование аудио при работе с голосом. 616
  Продвинутые функции синтезатора речи (TTS Engine). 624
  Настройка потоков аудио. 624
  Использование звуковых пиктограмм. 625
  Воспроизведение тишины. 625
  Оглавление 15
  Использование языковых методов. 626
  Перевод текста на другой язык. 627
  Резюме. 638
  Глава 16. Сенсорные экраны. 639
  Понятие о MotionEvents. 639
  Работа с VelocityTracker. 653
  Изучение функции перетаскивания (Drag and Drop). 654
  Технология мультитач. 658
  Использование касаний при работе с картами. 665
  Жесты. 668
  Резюме. 676
  Глава 17. Titanium Mobile: разработка для Android
  на основе WebKit. 677
  Обзор Titanium Mobile. 678
  Архитектура. 679
  Среда разработки Titanium. 682
  Скачивание и установка Titanium Developer. 683
  Знакомство со связками (ropes): первый проект. 689
  Создание проекта в Titanium Mobile. 689
  Осваиваем Hello World. 692
  Подготовка приложения к отладке. 693
  Упаковка приложения. 696
  Установка APK-файла на собственном эмуляторе. 698
  Планирование приложений для практического использования. 699
  Базовое руководство по jQuery. 700
  Базовое руководство по продвинутому JavaScript. 702
  Понятие о механизме для создания микрошаблонов. 705
  Дополнительные мобильные API для Titanium. 709
  Резюме. 710
  Глава 18. Работа с Android Market. 711
  Приступаем к публикации. 711
  Выполнение правил. 712
  Консоль разработчика. 714
  Подготовка приложения для продажи. 715
  Тестирование для различных устройств. 715
  Поддержка различных размеров экрана. 716
  Подготовка AndroidManifest.xml для закачки. 716
  16 Оглавление
  Локализация приложения. 717
  Подготовка ярлыка для вашего приложения. 718
  Размышления относительно платных приложений. 718
  Возвращение пользователей обратно на рынок. 719
  Подготовка APK-файла для закачки. 719
  Закачка вашего приложения. 720
  Работа пользователя с Android Market. 722
  Резюме. 724
  Глава 19. Обзор и ресурсы. 725
  Актуальное состояние Android. 725
  Компании, предлагающие мобильные устройства с ОС Android. 725
  Магазины для покупки программ Android. 727
  Обзор Android. 728
  Быстрый обзор операционных систем, используемых
  в мобильных устройствах. 729
  Сравнение Android с другими мобильными ОС. 731
  Поддержка HTML 5 и что за этим стоит. 732
  Ресурсы, посвященные Android. 733
  Основные ресурсы Android. 733
  Новостные ресурсы, посвященные Аndroid. 734
  Резюме. 735