Оглавление
Об авторе ..................................................................................................................15 О техническом редакторе ....................................................................................15 Благодарности.........................................................................................................15
Введение... ..............................................................................................................................16 Для кого предназначена книга ..........................................................................17 Какой круг тем освещен .....................................................................................17 Структура книги ....................................................................................................18 Что вам понадобится при чтении книги ........................................................19 Соглашения и условные обозначения ............................................................19 Исходный код..........................................................................................................20 Список опечаток.....................................................................................................20 p2p.wrox.com ............................................................................................................21
Глава 1. Здравствуй, Android .........................................................................................22 Предыстория ...........................................................................................................23 Чем Android не является .....................................................................................25 Android: открытая платформа для разработки мобильных приложений ......................................................25
5
Оглавление
Встроенные приложения Android ....................................................................26 Среда разработки для платформы Android. Основные характеристики .................................................................................27 Несколько слов об Альянсе открытых мобильных устройств ...............................................32 На каких устройствах работает Android ........................................................33 Зачем нужно заниматься разработкой приложений для мобильных устройств ...................................................................................33 Для чего нужно заниматься разработкой приложений для Android ..............................................................................................................34 Знакомство с фреймворком разработчика....................................................36
Глава 2. Приступаем к работе ........................................................................................42 Разработка приложений для Android .............................................................43 Разработка приложений для мобильных и встраиваемых устройств ..................................................................................60 Средства разработки для Android ....................................................................71
Глава 3. Создание приложений и Активностей .......................................................77 Из чего состоят приложения в Android .........................................................78 Знакомство с манифестом приложения ........................................................79 Использование редактора манифеста ............................................................88 Отделение ресурсов от кода программы........................................................89 Жизненный цикл приложения в Android ...................................................106 Приоритеты приложений и состояния процессов .......................................................................................107 Знакомство с классом Application в Android .................................................................................................................109 Детальный обзор Активностей в Android ...................................................111
6
Оглавление
Глава 4. Создание пользовательского интерфейса .............................................120 Основы проектирования пользовательского интерфейса в Android .................................................................................................................121 Основы пользовательского интерфейса в Android ..................................122 Знакомство с менеджерами компоновки.....................................................123 Приложение To-Do List.....................................................................................132 Знакомство с Фрагментами .............................................................................139 Набор виджетов в Android ................................................................................157 Создание новых Представлений ....................................................................158 Знакомство с Адаптерами .................................................................................181
Глава 5. Намерения и Широковещательные приемники ..................................189 Знакомство с Намерениями .............................................................................189 Создание Фильтров намерений и Широковещательных приемников ............................................................207
Глава 6. Использование ресурсов Интернета .......................................................225 Загрузка и разбор интернет-ресурсов...........................................................225 Использование Менеджера загрузок ............................................................235 Использование интернет-сервисов ...............................................................241 Подключение к Google App Engine................................................................242 Советы по минимизации энергопотребления при загрузке данных ...........................................................................................244
Глава 7. Файлы, сохранение состояния и настройки .........................................245 Сохранение простых данных приложения .................................................246 Создание и сохранение Общих настроек ....................................................246
7
Оглавление
Получение Общих настроек ............................................................................247 Создание Активности для настроек приложения Еarthquake Viewer ...........................................247 Знакомство с Активностью настроек и фреймворком для их создания ....................................................................................................256 Создание стандартной Активности настроек для приложения Еarthquake Viewer ..............................................................263 Сохранение состояния экземпляра приложения .....................................267 Включение статических файлов в качестве ресурсов .............................270 Работа с файловой системой............................................................................271
Глава 8. Базы данных и Источники данных ...........................................................275 Введение в базы данных на платформе Android .......................................276 Введение в SQLite ...............................................................................................277 Курсоры и класс ContentValues......................................................................277 Работа с базами данных SQLite ......................................................................278 Создание Источников данных ........................................................................285 Использование Источников данных.............................................................297 Добавление поддержки поиска в приложение ..........................................314 Создание Источника данных с поддержкой поиска для приложения Earthquake ................................324 Стандартные Источники данных в Android ...............................................339
Глава 9. Работа в фоновом режиме ...........................................................................352 Знакомство с Сервисами ...................................................................................353 Использование фоновых потоков ..................................................................365 Использование Сигнализации ........................................................................372 Использование IntentService для упрощения класса EarthquakeUpdateService .....................................377
8
Оглавление
Глава 10. Расширение опыта взаимодействия ......................................................379 Знакомство с Панелью действий ...................................................................380 Добавление Панели действий в приложение Earthquake .....................390 Создание и использование меню и действий на панели ActionBar ...397 Обновление приложения Earthquake ...........................................................410 Переход в полноэкранный режим ..................................................................412 Знакомство с диалоговыми окнами ..............................................................415 Давайте произнесем тост...................................................................................421 Знакомство с уведомлениями .........................................................................424 Добавление уведомления и диалоговых окон в приложение Earthquake..................................................................................436
Глава 11. Продвинутый опыт взаимодействия ......................................................443 Проектирование для экранов с любым размером и плотностью пикселов ......................................................................................444 Обеспечение всеобщей доступности.............................................................456 Преобразование текста в речь на платформе Android ............................457 Распознавание речи ............................................................................................459 Управление вибрацией устройства ...............................................................462 Работа с анимацией .............................................................................................462 Улучшаем Представления ................................................................................470 Продвинутые графические ресурсы..............................................................498 Копирование, вставка и буфер обмена .........................................................501
Глава 12. Датчики..............................................................................................................504 Использование датчиков и объекта SensorManager ................................505 Отслеживание перемещения и поворота устройства ..............................512 Знакомство с датчиками окружающей среды ............................................529
9
Оглавление
Глава 13. Карты, геокодирование и геолокационные сервисы ......................535 Использование геолокационных сервисов .................................................536 Использование геолокационных сервисов в эмуляторе ........................536 Выбор Источника данных ................................................................................538 Поиск текущего местоположения ..................................................................541 Рекомендации по обновлению данных о местоположении ..................549 Использование оповещений о близости нахождения.............................552 Использование геокодировщика ....................................................................554 Создание Активностей, основанных на MapView....................................558 Добавление картографических возможностей в проект Earthquake ............................................................................................578
Глава 14. Домашний экран в Android ........................................................................584 Знакомство с Виджетами домашнего экрана .............................................584 Создание виджетов .............................................................................................586 Создание виджета для приложения Earthquake .......................................601 Знакомство с виджетами, основанными на коллекциях........................607 Знакомство с Живыми каталогами ...............................................................625 Вывод поисковых результатов с помощью строки быстрого поиска ..............................................................633 Создание Живых обоев......................................................................................635
Глава 15. Аудио, видео и камеры ................................................................................639 Воспроизведение аудио и видео .....................................................................640 Работа с несжатым звуком................................................................................657 Создание звуковых наборов.............................................................................660 Использование аудиоэффектов ......................................................................662 Использование камеры для создания снимков .........................................663
10
Запись видео ..........................................................................................................673 Использование мультимедийных эффектов ..............................................678 Добавление мультимедийных данных в хранилище MediaStore ...................................................................................679
Глава 16. Bluetooth, NFC-сеть и Wi-Fi .....................................................................681 Использование Bluetooth..................................................................................681 Управление сетью и сетевыми соединениями...........................................694 Управление подключением к Wi-Fi ..............................................................698 Передача данных с помощью технологии Wi-Fi Direct .........................702 NFC ...........................................................................................................................708
Глава 17. Телефония и SMS ..........................................................................................716 Аппаратная поддержка телефонии ................................................................716 Использование телефонии ...............................................................................717 Знакомство с SMS и MMS ...............................................................................728 Знакомство с SIP и VOIP .................................................................................753
Глава 18. Продвинутое программирование под Android ...................................754 Paranoid Android ..................................................................................................755 Знакомство с сервисом Cloud to Device Messaging .................................758 Защита от копирования с помощью библиотеки для проверки лицензий ......................................765 Покупки внутри приложений .........................................................................768 Использование объектов WakeLock .............................................................772 Использование AIDL для выполнения межпроцессного взаимодействия на уровне Сервисов ............................................................774
11
Оглавление
Поддержка различного аппаратного и программного обеспечения ...........................................................................780 Оптимизация производительности пользовательского интерфейса с помощью режима StrictMode .........784
Глава 19. Монетизация, продвижение и дистрибуция приложений .............786 Подписание и публикация приложений .....................................................786 Дистрибуция приложений ...............................................................................789 Введение в монетизацию приложений.........................................................794 Стратегии маркетинга, продвижения и дистрибуции ............................796 Аналитика и отслеживание источников установок .................................798
Алфавитный указатель ...................................................................................................802
Глава 1 ЗДРАВСТВУЙ, ANDROID
Содержание главы • Основы разработки мобильных приложений. • Чем является и чем не является Android. • Основные характеристики среды разработки для платформы Android. • На каких устройствах работает Android. • Зачем нужны программы для мобильных устройств и платформы Android. • Описание среды разработки и фреймворка Android. Независимо от того, опытный вы инженер в области мобильных приложений, разработчик компьютерных программ, веб-программист или любитель, Android предоставляет отличную возможность по написанию инновационных приложений для стремительно растущего количества всевозможных устройств. Несмотря на название, Android не предназначен для создания несокрушимой армии хладнокровных роботов-солдат с целью очистить Землю от гнета человечества. Android представляет собой набор программ с открытым исходным кодом, который включает операционную систему, подпрограммное обеспечение и ключевые мобильные приложения вместе с библиотеками API, предназначенными для написания новых программ, определяющих визуальное представление и функционал устройств, на которых они работают. Самые разнообразные компактные стильные мобильные устройства со временем снабжались такими мощными инструментами, как сенсорный экран, камера, медиаплеер, система глобального позиционирования (GPS) и чип для коммуникации ближнего поля (NFC). С внедрением новых технологий мобильный телефон превратился в нечто гораздо большее, чем просто устройство для звонков. С появлением Google TV и планшетных компьютеров Android вышел за рамки мобильной операционной системы, на его основе стали разрабатываться приложения для более широкого спектра устройств. В случае с Android встроенное ПО написано на том же самом API, что и программы сторонних разработчиков, при этом время для исполнения и тех, и других одинаково. Данное API позволяет получить доступ к аппаратному обеспечению, навигационным сервисам, фоновым и картографическим процессам, реляционным базам данных, двух- и трехмерной графике, к функциям видеозаписи, межпрограммного взаимодействия, Bluetooth и NFC.
22
Глава 1
• Онлайн-поддержка. Группы Google по адресу http://developer.android.com/ resources/community-groups.html — это форумы разработчиков, на которых часто появляются сообщения от команд инженеров и специалистов компании Google. Ресурс StackOverflow по адресу http://www.stackoverflow.com/questions/ tagged/android также стал весьма популярным — здесь начинающие программисты могут найти ответы на свои вопросы. Для тех, кто использует популярную среду разработки Eclipse, Android выпустил плагин Android Development Tools (ADT), который упрощает процесс создания проекта и тесно связывает Eclipse с эмулятором и отладочными инструментами Android. Информация о плагине ADT приводится в главе 2.
Программный стек Android В упрощенном представлении программный стек Android состоит из ядра Linux и набора библиотек C/C++, доступных в виде фреймворка. Последний обеспечивает управление и функционирование рабочей среды и приложений. Элементы, формирующие программный стек Android, показаны на рис. 1.1. • Ядро Linux. Работу системных служб (включая драйверы устройств, управление процессами и памятью, питанием, безопасность, сетевые службы) обеспечивает ядро Linux версии 2.6. Оно также отвечает за уровень абстракции между аппаратной начинкой и остальной частью программного стека.
Рис. 1.1.
38
Алфавитный указатель
Android Beam 36, 712
A AAPT 72
передача данных 714
action, тег 208
сообщения 712–714 получение 714–715
ActionBar см. Панель действий ActionProvider, класс 403
Android Asset Packaging Tool см. AAPT
Аctivity, класс 119
Android Debug Bridge см. ADB
аctivity, тег 86, 113
Android Development Tools см. ADT
ADB 72, 75
Android Virtual Device см. AVD
ADT, плагин 38
Animation, класс 463
Eclipse 46–47 запуск и отладка приложений 55–56
AnimationDrawable, класс 466 API, библиотеки 28–29, 37 Application, класс 109–111
обновление 49
аpplication, тег 86
установка 48–49
AppWidgetManager, класс 591–592
AIDL 774–779
AsyncTask, класс 366–368
AlertDialog, класс 415–417
ArrayAdapter, адаптер 181
Android, операционная система 22–26, 33, 36
настройка 181–182 AudioRecord, класс 657–659
виды приложений 58–59
AudioTrack, класс 659–660
встроенные приложения 26–27
authorities, тег 286
компоненты 26
AVD 37, 71–74
лицензионное ПО 27
создание 53
рабочая среда 39
802
характеристики 28
B
элементы 26
beginTransaction, метод 147
Алфавитный указатель
Bluetooth 681–682
ConnectivityManager 695
взаимодействие 688–694
ContactsContract 340–347
обнаружение 685–687
ContentResolver, класс 297–298
поиск 687–688
ContentValues, класс 277
сканирование 685–687
Criteria, класс 539
управление 682–685
Cursor, класс 277–278, 282–284
BluetoothAdapter, класс 682
CursorLoader, класс 301–303
BluetoothServerSocket, класс 689 BluetoothSocket, класс 689
D
BroadcastReceiver, класс 201
Dalvik, виртуальная машина 26, 37, 39–40
C
Dalvik Debug Monitoring Service см. DDMS
C/C++ 23, 40
data, тег 209
C2DM см. Cloud to Device Messaging
DDMS 43, 47, 71, 75
Calendar 347–351
delete, метод 284–285
Canvas, класс 169, 470–472, 478–479
Dialog, класс 415–416
сategory, тег 208
DialogFragment, класс 418–420
CheckBox 401
dimen, тег 92
ClipboardManager см. Буфер обмена
Drawable 94, 97 имена каталогов 104
ClipData, класс 502 Cloud to Device Messaging 31–32, 758
duration, атрибут 96
ограничения 758–759 сообщения: отправка 763–764 прием 764–765 регистрация 759–763
E Earthquake, приложение 229–234, 247–255, 263–267, 324–338, 359–364, 375–378, 390–396, 410–412, 436–442, 578–583, 601–607, 618–624, 630–633
color, тег 92
Eclipse, среда разработки 42, 46
ColorDrawable, ресурс 450
EmergencyResponder, приложение 736–753
Compass, приложение 174–180, 479–487, 525–527
Environment, класс 272, 274
Compatibility Definition Document 26
ExifInterface, класс 673
Compatibility Test Suite 26
ExpandableListActivity, подкласс 119
compatibleWidthLimitDp, тег 84
Extras, параметр 192
803
Алфавитный указатель
F
getSharedPreferences, метод 246
fill_parent, константа 125
getString, метод 101
fillAftertrue, атрибут 96
getType, метод 288
fillBeforetrue, атрибут 96
getView, метод 182
findFragmentById, метод 148
getWritableDatabase, метод 280
findFragmentByTag, метод 148
glEsVersion, атрибут 83
findViewById, метод 57, 123
Google Analytics, сервис 800–801
Fragment, класс 140–141
Google App Engine 242–243
fragment, тег 145
Google Maps, сервис 29, 35
FragmentManager, класс 145
Google Play 34, 789–794
FragmentTransaction, класс 147
GPS 29
FrameLayout, класс 124
GradientDrawable, ресурс 451–453 GridLayout, класс 124, 128
G Geocoder, класс 554 getActivity, метод 151 getBackgroundDataSetting, метод 695 getCacheDir, метод 273 getColumnIndexOrThrow, метод 277 getDefaultSensor, метод 507 getDrawable, метод 100 getExternalCacheDir, метод 273
GUI, поток 370–371 H Html.fromHtml, метод 91 I IDE 42 import, инструкция 137 include, тег 130, 166 inflate, метод 165
getExternalFilesDir, метод 272
insert, метод 284
getExternalStoragePublicDirectory, метод 274
installLocation, атрибут 80
getExtras, метод 192
instrumentation, тег 86
getFragmentManager, метод 145
Integrated Development Environment см. IDE
getIntent, метод 211
intent-filter, тег 113, 208
getLastKnownLocation, метод 538
IntentFilter, класс 203
getProviders, метод 539
IntentService, класс 368–369
getQuantityString, метод 92
interpolator, атрибут 96
getReadableDatabase, метод 280
isDiscovering, метод 687
getResources, метод 99
ItemizedOverlay, класс 575–577
804
Алфавитный указатель
J
minSDKVersion, атрибут 77
Java Development Kit 44
Monkey 72, 76
Java ME, платформа 25
Monkey Runner 72, 76
JVM см. Виртуальная Java-машина
MyLocationOverlay, класс 575
L
N
largeScreens, атрибут 84
NFC, технология 708 высокоприоритетная диспетчеризация 710–711
largestWidthLimitDp, атрибут 84 LayerDrawable, ресурс 499–500 LevelListDrawable, ресурс 501 LinearLayout, класс 124, 126–127 Linkify, класс 198
сканирование меток 709–710 NinePatch, ресурс 453–454 normalScreens, атрибут 84 Notification Manager 30
ссылки 198 шаблоны 199
O
Lint, утилита 72, 76, 131–132
ObjectAnimator, класс 467–469
Linux, ядро 26, 38
OHA 32
ListActivity, подкласс 119
onAccuracyChanged, метод 508
Loader, класс 300–301, 369
onActivityResult, метод 195
LocalBroadcastManager, класс 206
onConfigurationChanged, метод 103, 110
LocationManager, класс 539
onContextItemSelected, метод 409
LocationProvider 539, 550–552
onCreate, метод 56–57, 97, 110, 117
Logcat, утилита 71
onDraw, метод 167 onKeyListener, интерфейс 497–498
M
onLowMemory, метод 110
manifest, тег 79
onMeasure, метод 167
MapActivity, подкласс 119
onNavigationListener, метод 389
MapController, объект 563–564
onReceive, метод 201
MapView, класс 558–559, 560–563
onSensorChanged, метод 508–509
MatchFilter, интерфейс 200
onStartCommand, метод 354–356
maxSDKVersion, атрибут 77
onTouchListener, метод 496
MD5, слепок 559–560
onTrackBallEvent, метод 172
MediaStore 339–340
onTrimMemory, метод 110
merge, тег 130
onWindowFocusChanged, метод 98
805
Алфавитный указатель
Open Handset Alliance см. OHA
RemoteViews, объект 591–596
openFileInput, метод 272
RemoteViewsFactory 611–613
openFileOutput, метод 272
RemoteViewsService, сервис 610–611, 613–614
OpenGL 26, 31, 39 openInputStream, метод 305–306 openOrCreateDatabase, метод 281 openOutputStream, метод 305–306 OverlayItem, объект 575
P package, атрибут 79 Paint, класс 471–473 Paranoid Android 755–757 PendingIntent, класс 206–207 permission, тег 85–86 PreferenceActivity, класс 261 PreferenceFragment, класс 259–260 provider, тег 87
reqFiveWayNav, атрибут 81 reqHardKeyboard, атрибут 81 reqKeyboardType, атрибут 82 reqNavigation, атрибут 82 reqTouchScreen, атрибут 82 requestLocationUpdates, метод 544 requiresSmallestWidthDp, атрибут 84 Resources, класс 99 S SDK см. также Менеджер SDK 42, 71 загрузка 44 обновление 46 установка 44–45 sendBroadcastSync, метод 206 sendOrderedBroadcast, метод 204
Q
sendStickyBroadcast, метод 205
QSB см. Строка быстрого поиска
Sensor, класс 505
query, метод 239, 281, 298
SensorManager, класс 505 Service, класс 352
R
service, тег 87
R, класс 98–99
set, тег 96
RadioButton 401–402
setCamera, метод 676
receiver, тег 87, 204
setCancelable, метод 417
RecognizerIntent, класс 459–460
setContentView, метод 57, 112, 122–123
registerRemoteControlClient, метод 655
setDisplayUseLogoEnabled, метод 382
RelativeLayout, класс 124, 127
setInexactRepeating, метод 374
remapCoordinateSystem, метод 523
setLanguage, метод 458
RemoteControlClient, класс 655–657
setLayoutParams, метод 125
806
Алфавитный указатель
setListNavigationCallbacks, метод 389
startActivityForResult, метод 191
setMeasuredDimension, метод 170
startForeground, метод 364
setMediaController, метод 647
startOffset, атрибут 96
setNavigationMode, метод 387
StateListDrawable, ресурс 500–501
setNotificationVisibility, метод 237
StrictMode, режим 784–785
setRepeating, метод 374
string, тег 91
setResult, метод 194
String.format, метод 91
setRetainInstance, метод 152
style, тег 93
setShowAsActionFlags, метод 401
supports-gl-texture, тег 85
setTransition, метод 150
supports-screens, тег 84–85
setTransportControlFlags, метод 656
SurfaceView, класс 167, 489–492
setVideoPath, метод 643
Symbian, платформа 23
setVideoURI, метод 643 setVolumeControlStream, метод 650
T
ShapeDrawable, ресурс 450–451
targetSDKVersion, атрибут 77
SimpleCursorAdapter, адаптер 181
To-Do List, приложение 132–139, 154–157, 161–164, 183–185, 306–314
использование 187–188 SIP, протокол 753
Toast, уведомление 380, 421–422 использование в рабочих потоках 424
smallScreens, атрибут 84 SMS 728 бинарные 733, 735 моделирование в эмуляторе 735 отправка с помощью: SmsManager 730–733 Намерения 729–730 отслеживание входящих 734–735 speak, метод 458 SQLite 26, 30, 276–277 работа 278 SQLiteOpenHelper, класс 278–280 StackOverflow, интернет-ресурс 38 startActivity, метод 191
настройка 422–423 ToDoContentProvider, класс 306 ToDoListItemView, класс 161 TransformFilter, интерфейс 200 U UriMatcher, класс 287 uses-configuration, тег 81–82 uses-feature, тег 82–84 uses-library, тег 87 uses-permission, тег 85 uses-sdk, тег 81 UUID см. Универсальный уникальный идентификатор
807
Алфавитный указатель
V
Акселерометр 514–515, 521–523
versionCode, атрибут 79
Активности 56, 78, 111, 122
versionName 79
для Живого каталога 627–629
View, класс 167
жизненный цикл 113–114
ViewGroup, класс 122
как диалоговое окно 421
ViewStub, элемент 130–131
параллельные 782–783
VOIP 753
поисковая 315–319 присваивание интерфейса 122–123
W
создание 111–113
WakeLock, объект 772–774
состояния 114–119
WeatherStation, приложение 530–534
сохранение состояния 267–268 стек 113–114
WebKit 26 Where Am I?, приложение 542–544, 547–548, 557–558, 564–568, 571–574 Wi-Fi:
Альянс открытых мобильных устройств см. OHA Анимация 95–98, 462–463 пошаговая 95, 97–98, 466
конфигурация 701–702 настройки 700–701
с помощью промежуточных кадров 95–97, 463–466
подключение 698–700
свойств 95
точки доступа 700
интерполяционная 467–470
Wi-Fi Direct 36, 702–708
Аппаратное ускорение 487–488
wrap_content, константа 125
Асинхронные задачи 366–368 Аудио: запрос на получение аудиоканала 652–654
X Xfermode, режим 477 xlargeScreens, атрибут 84
подготовка к воспроизведению 642–643
XML Pull Parser, парсер 227–229
форматы 640 эффекты 662–663
А Адаптер 181 Bluetooth 682–685
808
Б Базы данных см. также SQLite 276
настройка 181–182
запросы 281–282
привязка данных 183
организация 281
стандартный 181
работа со строками 284–285
Алфавитный указатель
Безопасность приложений 69
Визуальные стили 101
Библиотека 39, 41 см. также API, библиотеки
Виртуальная Java-машина 24 Вспомогательный пакет 49–50
IAB, 769–770 анимации 151 вспомогательная 49–50
Г Геокодирование 554–555
для преобразования текста в речь 457–459
обратное 555
картографическая 553–554
прямое 555–557
Буфер обмена 501–502
Геолокационные сервисы 536
вставка 502–503
в эмуляторе 536–538
копирование 502
выбор источника 539–541 местоположение:
В
обновление 544–547
Вибрация 427, 462
одиночное 548–549
Виджеты 31, 60, 79, 157–158, 584–586
поиск 541 рекомендации 549
настройки 589–591, 600–601
оповещение о близости нахождения 552–554
обновление 596–599 основанные на коллекции 607–609 интерактивность 614–615 наполнение данными 613–614 обновление 617–618
Гироскоп 528 Графический интерфейс 167–168 Группа представлений 121–122, 146 см. также ViewGroup, класс
разметка 609–610 связывание с Источниками данных 615–617 разметка 586–589 Видео: запись 673–677 управление 677–678 замедленная видеосъемка 678
Д Датчики 504 виртуальные 506–507 окружающей среды 529 поиск 507–508 показания 508–511 типы 505–506
подготовка к воспроизведению 643–647
Действия 390, 401, 402–404
предварительный просмотр 677
Диалоговые окна 415
форматы 640
для ввода данных 417–418
809
Алфавитный указатель
Диалоговые окна (окончание):
Источники данных 31, 41, 78, 276, 285–286
отображение 420
URI 286–287
создание 416
база данных 288
управление 420–421
доступ к файлам 305–306
Док-станции 223–224
запрос 288–290, 298–300 поиск 315, 320–324
Ж
реализация 293–297
Живые каталоги 36, 625
регистрация 286
создание 625–627
создание 286 стандартные 339–351
Живые обои 31, 36, 60 ресурс для описания 636
транзакции 290–292, 303–305
создание 635
хранение файлов 292–293
З
К
Загрузка файлов 235–236
Камера:
место 237–238
автофокус 668
минимизация энергопотребления 244
метаданные 673
отмена 238
настройки 666–668
Загрузчик см. Loader
предварительный просмотр 669–671
Заряд батареи 222–223
распознавание лиц 671–672
Защита от копирования 765–768
свойства 665–666
Звук:
управление напрямую 665
воспроизведение 659–660 запись 657–659 набор 660–662 Значок приложения 384–386
фотографии 672 Клавиатура: использование 497 сокращенные команды 402 сторонняя 80 тип 82
И Интернет 33, 63 ресурсы 225–226 подключение 226–227 сервисы 241–242
810
Классы переходов 31 Контурные эффекты 476–477 Курсор 277–278 извлечение результатов 282–284
Алфавитный указатель
М
Мидлеты 24
Манифест 78–88
Модальное сообщение 68
редактор 88–89
Мультимедийные данные: добавление 679–680
Медиапроигрыватель 641–642
эффекты 678–679
управление воспроизведением 647–648 изменение аудиовыхода 654– 655 нажатие клавиш 650–652
Н Наложения 568 добавление 571
— мультимедийным выводом 649–650
рисование 569–570
Менеджер виртуальных устройств см. AVD Менеджер:
создание 568–569 удаление 571 Намерения 41, 78, 189–190
SDK 42–43, 71, 74
запуск Активностей 190, 196–198
загрузок 235, 239–241
«липкие» 205
компоновки см. Разметка
неявные 191–192
пакетов 192, 218
обработка 192–198
ресурсов 41
ожидающие 206–207
трансляций локальный 206
поиск внутри Активности 211
уведомлений 41, 425
создание снимков 663–665
учетных записей 242–243
трансляция 200–205
фрагментов 145 Меню 397–399 XML-описание 404–405
упорядоченные 204–205 Независимость от разрешения 44–445
всплывающее 409–410 выбор пунктов 406–407
О
динамическое изменение пунктов 406
Общие настройки 245, 262–263
добавление для Фрагментов 404 дочернее 407 контекстное 408–409 параметры 401–402 создание 399–401
изменение 246–247 получение 247 создание 246 сохранение 247 Отзывчивость приложений 67–68, 365
811
Алфавитный указатель
П
Просмотрщик иерархии 72, 75
Панель действий 379–381
Процессы, виды 108
изменение 381–384 нестандартная 390
Р
управление навигацией 384–389
Разметка 123–124
Панель поиска 314
масштабируемая 446–447
Песочница 69
описание 124–126
Поиск 314–324
оптимизация 129–132, 447–448
Поисковое представление 315
Распознавание речи 459–460
Покупка внутри приложений 768–772
для голосового ввода 461
Полноэкранный режим 412–414
— поиска 462
Представления 41, 57, 112, 121
Ресурсы приложения 89
доступность 456–457
Drawable см. Drawable
изменение 159–161
анимация см. Анимация
интерактивность 172
визуальные стили и темы 93
нестандартные 167–174
графические 446–449 продвинутые 498–501
поисковые 320 привязка к карте 577–578
использование 98–100
создание 158–159
меню 98
стандартные 157–158
оптимизация 446–449
Преобразование текста в речь 457–459
размеры 92–93
Приемники:
системные 100–101
разметка 94
управление 224
создание 90, 101–106
Приложения:
статические файлы 270–271
дистрибуция 789
строки 91–92
жизненный цикл 106
цвета 92
монетизация 794–795 подписание и публикация 786–789
С
приоритеты 107–108
Светодиоды 428–429
продвижение на рынке 796–798
Сервисы 78, 353
смешанного вида 60 Программы переднего плана 58–59
812
для Живых обоев 636–637 движок 637–638
Алфавитный указатель
запуск 354–356
У
остановка 357
Уведомления 30, 79, 424–425 см. также Toast
перезагрузка 356
интерфейс 429–434
привязка к Активности 357–359
Менеджера загрузок 237
создание 353–354
настойчивые 435
фоновые 364–365
создание 426–429 текущие 434
Сетевое подключение 223 Сетевое соединение 694–698 Сигнализация 372
Универсальный уникальный идентификатор 689
виды 372–373 повторяющаяся 373–375 создание 372–373 Система глобального позиционирования см. GPS Составные элементы управления 164 Система отсчета: переопределение 523–524 стандартная 520–521 Строгий режим 68 Строка быстрого поиска 315, 324, 633 доставка поисковых результатов 633–635
Ф Файловая система 271–274 Фильтр намерений 79, 113, 207 дополнения 217–222 работа 209–210 Фоновые потоки 365–366 Фоновые приложения 59 Фоновые службы 30, 35 Фрагменты 112, 121–122, 139–140 анимирование транзакций 150– 151 без интерфейса 152–153 взаимодействие с Активностями 151–152
Т
добавление 147
Телефония:
— в Активность 145–146
аппаратная поддержка 716–717
жизненный цикл 141–143
доступ к свойствам 720–727
замена 148
замена приложения для дозвона 718–719
заполнение динамической разметки Активности 148–149
инициирование звонка 718
классы 153
Токен 242
поиск 148
Трекбол 492, 498
события жизненного цикла 144
813
Алфавитный указатель
Фрагменты (окончание): создание 140–141
Широковещательный приемник 79, 201–202 входящие звонки 728
состояния 145
регистрация внутри кода 203
сохранение состояния 269–270
— — манифеста 204 создание 202
стек 150 транзакции 147 удаление 147 Фреймворк 39, 256
Э Экран настроек 256 импорт 259
Х
обратная совместимость 262
Холст 168
разметка 257–259 элементы управления 258–259
Ц
Экран сенсорный 492–493
Цель сборки 51
Элемент управления: задание размеров 170–172
Ш
интерактивные 492–498
Шейдеры 473
нестандартный 180
градиентные 474 объект Paint 474 режимы заполнения 475
отрисовка 168–170 Эмулятор 37, 71, 74 оболочки 455