Уровень API: 8
Android 2.2 — это второстепенная версия платформы, включающая пользовательские функции, функции разработчиков, изменения API и исправления ошибок. Информацию о функциях разработчика и изменениях API см. в разделе API Framework .
Для разработчиков платформа Android 2.2 доступна в виде загружаемого компонента Android SDK. Загружаемая платформа включает в себя библиотеку Android и образ системы, а также набор скинов эмулятора и многое другое. Чтобы начать разработку или тестирование для Android 2.2, используйте Android SDK Manager, чтобы загрузить платформу в свой SDK.
Основные характеристики платформы
Список новых пользовательских функций и особенностей платформы см. в документе «Основные характеристики платформы Android 2.2» .
Уровень API
Платформа Android 2.2 предоставляет обновленную версию API платформы. API Android 2.2 присвоен целочисленный идентификатор — 8 , который хранится в самой системе. Этот идентификатор, называемый «уровнем API», позволяет системе правильно определить, совместимо ли приложение с системой, до его установки.
Чтобы использовать API-интерфейсы, представленные в Android 2.2, в вашем приложении, вам необходимо установить правильное значение «8» в атрибутах android:minSdkVersion
элемента <uses-sdk>
в манифесте вашего приложения.
Дополнительные сведения о том, как использовать уровень API, см. в документе «Уровни API» .
Изменения в API платформы
В разделах ниже представлена информация об изменениях, внесенных в API платформы приложений, предоставляемый платформой Android 2.2.
Установка приложения на внешний носитель
Платформа Android теперь позволяет приложениям запрашивать установку на внешний носитель устройства (например, SD-карту) в качестве альтернативы установке во внутреннюю память устройства.
Разработчики приложений могут указать предпочтительное место установки своих приложений с помощью нового атрибута <manifest>
в файле манифеста android:installLocation
. Атрибут поддерживает три значения: "internalOnly"
, "preferExternal"
и "auto"
. Во время установки система проверяет значение android:installLocation
и устанавливает приложение .apk
в соответствии с предпочтительным расположением, если это возможно. Если приложение запросило внешнюю установку, система устанавливает его в частный зашифрованный раздел на внешнем носителе. После установки .apk приложения извне система позволяет пользователю изменить место хранения .apk и при необходимости переместить его во внутреннюю память устройства (и наоборот) через «Управление приложениями» в настройках пользователя.
По умолчанию система устанавливает все приложения во внутреннюю память устройства, кроме тех, которые явно требуют внешней установки. Это означает, что система всегда будет устанавливать устаревшие приложения во внутреннюю память, поскольку у них нет доступа к атрибуту android:installLocation
. Однако можно настроить и скомпилировать устаревшее приложение так, чтобы оно устанавливалось внутри на старых версиях платформы и снаружи на платформах Android 2.2 и более поздних версий, если это необходимо.
Обратите внимание, что запрос установки на внешний носитель устройства подходит не для всех приложений, особенно потому, что внешний носитель может быть съемным, а отключение/повторное подключение может нарушить работу пользователя и настройки системы.
Для получения дополнительной информации о настройке предпочтительного места установки вашего приложения, включая обсуждение того, какие типы приложений должны и не должны запрашивать внешнюю установку, прочтите документ «Место установки приложения» .
Резервное копирование данных
Платформа теперь предоставляет универсальный сервис резервного копирования, который приложения могут использовать для резервного копирования и восстановления пользовательских данных, чтобы гарантировать, что пользователи смогут сохранить свои данные при переключении устройств или переустановке приложения. Менеджер резервного копирования выполняет работу по транспортировке данных приложения в область хранения резервных копий в облаке и обратно. Менеджер резервного копирования может хранить данные любого типа, от произвольных данных до файлов, и атомарно управляет операциями резервного копирования и восстановления. Дополнительную информацию см. в разделе Резервное копирование данных .
Графика
- Новые API OpenGL ES 2.0 в
android.opengl.GLES20
. - Новые классы
ETC1
,ETC1Util
иETC1Util.ETC1Texture
и служебные методы для использования ETC1 для сжатия текстур. - Новый класс
ImageFormat
. - Новый
YUV image format API
, обеспечивающий сжатие из YUV в JPEG и манипулирование данными YUV.
СМИ
- Новые API в
android.media.AudioManager
для управления фокусом звука, управления транспортировкой, временной потерей фокуса звука, приглушением звука. - Новое намерение трансляции для маршрутизации звука в SCO —
ACTION_SCO_AUDIO_STATE_CHANGED
с дополнительными сведениями, указывающими новое состояние. - Новые API в
SoundPool
для обнаружения завершения загрузки звука. - Новые API в
SoundPool
для автоматической паузы и возобновления. - Новые API в
MediaRecorder
для указания настроек звука для количества каналов, частоты кодирования и дискретизации, частоты дискретизации. - Новые API для добавления файлов в базу данных мультимедиа для их автоматического сканирования. См.
MediaScannerConnection.scanFile
иMediaScannerConnection.OnScanCompletedListener
.
Распознавание речи и сторонние механизмы распознавания
- Платформа предоставляет новые API-интерфейсы распознавания речи, которые позволяют приложениям более эффективно взаимодействовать с доступным распознавателем голоса. Например, API-интерфейсов достаточно для глубокой интеграции распознавания голоса в IME.
- Платформа также предоставляет базовый класс
RecognitionService
, который позволяет сторонним разработчикам создавать механизмы распознавания подключаемых модулей. - Новый интерфейс
RecognitionListener
для получения обратных вызовов. - Новые дополнительные функции
RecognizerIntent
, которые позволяют запрашивающему приложению указывать такие сведения, как предпочтительный язык, минимальную длину в миллисекундах и т. д.
Фотоаппарат и видеокамера
- Изменения в API предварительного просмотра камеры для повышения эффективности конвейера предварительного просмотра.
- Новая ориентация дисплея камеры (теперь она может работать в портретной ориентации).
- Новые API в
android.hardware.Camera
для управления уровнем масштабирования. - Новые API
android.hardware.Camera.Parameters
для запроса и установки настроек камеры устройства, таких как фокусное расстояние, экспозиция, уровень масштабирования, угол обзора и другие. - Новая утилита для
thumbnail
видео и изображений. - Новые классы
CamcorderProfile
иCamcorderProfile
позволяют приложениям определять возможности аппаратной камеры устройства. - Новая поддержка в
android.media.ExifInterface
для получения GPS и фокусного расстояния.
Менеджер политики устройств
Новые API-интерфейсы управления политиками устройств позволяют разработчикам писать приложения «администратора устройства», которые могут контролировать функции безопасности устройства, такие как минимальная надежность пароля, очистка данных и т. д. Пользователи могут выбирать администраторов, которые включены на их устройствах. Дополнительные сведения см. в классах android.app.admin
или в примере кода приложения в DeviceAdminSample.java .
Платформа пользовательского интерфейса
- Новые режимы пользовательского интерфейса «режим автомобиля» и «ночной режим», а также
UiModeManager
позволяют приложениям настраивать свой пользовательский интерфейс для конкретных пользовательских режимов. - Новый
ScaleGestureDetector
, который позволяет представлениям обнаруживать и обрабатывать жесты преобразования, включающие более одного указателя (мультитач), с помощью предоставленных MotionEvents. - Улучшения в способе сообщения о событиях мультитач в объектах
MotionEvent
. - Атрибут макета
fill_parent
переименован вmatch_parent
. Это влияет как на код XML, так и на Java (см.ViewGroup.LayoutParams
). Обратите внимание, что платформа продолжит учитывать использованиеfill_parent
в устаревших приложениях. - Новые атрибуты макета
tabStripEnabled
,tabStripRight
иtabStripLeft
позволяют разработчикам настраивать нижнюю полосу TabWidgets. - Улучшенная поддержка управляемых диалогов в Activity.
Учетные записи и синхронизация
- Новый метод
AddPeriodicSync()
позволяет запланировать периодическую синхронизацию с определенной учетной записью, полномочиями и дополнительными функциями с заданной частотой.
Новые элементы и атрибуты манифеста.
- Чтобы указать предпочтительное место установки приложения (см. «Установка приложения на внешний носитель» выше):
- Новый атрибут
android:installLocation
элемента<manifest>
. Указывает местоположение установки по умолчанию, определенное приложением.
- Новый атрибут
- Для управления резервным копированием пользовательских данных (дополнительную информацию см. в разделе «Менеджер резервного копирования» выше):
- Новый атрибут
android:backupAgent
элемента<application>
. Указывает имя компонента подкласса BackupAgent, предоставляемого приложением для обработки операций резервного копирования и восстановления, если таковые имеются. - Новый атрибут
android:restoreAnyVersion
элемента<application>
. Логическое значение, указывающее, готово ли приложение попытаться восстановить какой-либо набор данных из резервной копии, даже если резервная копия явно создана из более новой версии приложения, чем та, которая в данный момент установлена на устройстве.
- Новый атрибут
- Для управления JIT-компилятором платформы:
- Новый атрибут
android:vmSafeMode
элемента<application>
. Логическое значение, указывающее, следует ли отключать оптимизацию JIT-компилятора при запуске приложения.
- Новый атрибут
Разрешения
-
android.permission.BIND_DEVICE_ADMIN
— Любой приемник широковещательной рассылки администрирования устройства должен требовать это разрешение, чтобы гарантировать, что только система может взаимодействовать с ним. -
android.permission.KILL_BACKGROUND_PROCESSES
— позволяет приложению вызыватьkillBackgroundProcesses(String)
. -
android.permission.BIND_WALLPAPER
— ЛюбаяWallpaperService
должна требовать это разрешение, чтобы гарантировать, что только система может с ней взаимодействовать. -
android.permission.SET_TIME
— позволяет приложению устанавливать системное время.
Отчет о различиях API
Подробное описание всех изменений API в Android 2.2 (уровень API 8) можно найти в отчете о различиях API .