Android 2.2 API

API 级别8

Android 2.2 是一个次要平台版本,包含用户功能、开发者功能、API 变更和 bug 修复。如需了解开发者功能和 API 变更,请参阅框架 API 部分。

对于开发者来说,Android 2.2 平台可作为 Android SDK 的可下载组件提供。可下载平台包含 Android 库、系统映像,以及一组模拟器皮肤等。如需开始针对 Android 2.2 进行开发或测试,请使用 Android SDK 管理器将该平台下载到您的 SDK 中。

平台亮点

如需查看新用户功能和平台亮点的列表,请参阅 Android 2.2 平台亮点文档。

API 级别

Android 2.2 平台提供了更新版本的框架 API。Android 2.2 API 被分配一个整数标识符 8,该标识符存储在系统本身中。此标识符称为“API 级别”,可让系统在安装应用之前正确确定应用是否与系统兼容。

如需在应用中使用 Android 2.2 中引入的 API,您需要在应用清单的 <uses-sdk> 元素的 android:minSdkVersion 属性中设置正确的值“8”。

如需详细了解如何使用 API 级别,请参阅 API 级别文档。

Framework API 变更

下文介绍了对 Android 2.2 平台提供的应用框架 API 所作的更改。

应用安装在外部存储媒介上

Android 平台现在允许应用请求安装到设备的外部存储介质(例如 SD 卡),作为安装到设备内部内存的替代方案。

应用开发者可以通过清单文件 android:installLocation 中的新 <manifest> 属性表示其应用的首选安装位置。该属性支持三个值:"internalOnly""preferExternal""auto"。在安装时,系统会检查 android:installLocation 的值,并根据首选位置安装应用 .apk(如果可能)。如果应用已请求进行外部安装,系统会将其安装到外部介质中的专用加密分区中。将 .apk 应用安装到外部后,系统可让用户通过用户设置中的“管理应用”更改 .apk 的存储位置,并根据需要将其移至设备的内部内存(反之亦然)。

默认情况下,系统会将所有应用安装到设备的内部内存中,但明确请求外部安装的应用除外。这意味着系统始终将旧版应用安装到内部内存中,因为它们无权访问 android:installLocation 属性。不过,您可以配置和编译旧版应用,使其在旧版平台内部安装,并在外部安装在 Android 2.2 及更高版本的平台上。

请注意,请求在设备的外部介质上安装应用并不适合所有应用,特别是因为外部介质可以移除,而卸载/重新安装可能会破坏用户体验和系统设置。

如需详细了解如何为应用设置首选安装位置(包括讨论哪些类型的应用应该请求外部安装,哪些应用不应该请求外部安装),请阅读应用安装位置文档。

数据备份

该平台现在提供通用备份服务,应用可以使用该服务备份和恢复用户数据,以确保用户在切换设备或重新安装应用时可以保留其数据。备份管理器负责处理在云中的备份存储区域之间传输应用数据的工作。备份管理器可以存储任何类型的数据(从任意数据到文件),并以原子方式管理备份和恢复操作。如需了解详情,请参阅数据备份

显卡

媒体

语音识别和第三方识别引擎

  • 该平台提供了新的语音识别 API,可让应用与可用的语音识别程序进行更丰富的互动。例如,这些 API 足以将语音识别深度集成到 IME 中。
  • 该平台还提供了 RecognitionService 基类,可让第三方开发者创建插件识别引擎。
  • 新增了 RecognitionListener 接口,用于接收回调。
  • 新增了 RecognizerIntent extra,允许请求者应用将详细信息指定为首选语言、最短长度(以毫秒为单位)等。

相机和便携式摄像机

设备政策管理器

借助新的设备政策管理 API,开发者可以编写“设备管理员”应用,以便控制设备的安全功能,例如最低密码强度、数据清除等。用户可以选择在其设备上启用的管理员。如需了解详情,请参阅 android.app.admin 类或 DeviceAdminSample.java 中的示例应用代码。

界面框架

  • 新的界面模式“汽车模式”和“夜间模式”以及 UiModeManager 可让应用针对特定的用户模式调整其应用界面。
  • 新增了 ScaleGestureDetector,可让 View 使用提供的 MotionEvent 检测并处理涉及多个指针(多点触控)的转换手势。
  • 改进了在 MotionEvent 对象中报告多点触控事件的方式。
  • 布局属性 fill_parent 已重命名为 match_parent。这同时会影响 XML 和 Java 代码(请参阅 ViewGroup.LayoutParams)。请注意,平台将继续支持在旧版应用中使用 fill_parent
  • 新的布局属性 tabStripEnabledtabStripRighttabStripLeft 可让开发者自定义 TabWidgets 的底部条带。
  • 更好地支持 Activity 中的受管理对话框。

账号和同步

  • 新方法 AddPeriodicSync() 可让您按指定频率安排与特定帐号、授权方和 extra 定期同步。

新的清单元素和属性

  • 如需指定应用的首选安装位置(请参阅上文的外部存储介质上的应用安装),请执行以下操作:
    • <manifest> 元素的新 android:installLocation 属性。指定应用定义的默认安装位置。
  • 如需管理用户数据备份(如需了解详情,请参阅上文的备份管理器):
    • <application> 元素的新 android:backupAgent 属性。指定应用提供的 BackupAgent 子类的组件名称,用于处理备份/恢复操作(如果有)。
    • <application> 元素的新 android:restoreAnyVersion 属性。布尔值,指示应用是否已准备好尝试恢复任何备份的数据集,即使备份明显来自比设备上当前安装的应用版本更新的版本。
  • 如需管理平台的 JIT 编译器,请执行以下操作:
    • <application> 元素的新 android:vmSafeMode 属性。布尔值,用于指定是否在运行应用时停用 JIT 编译器优化。

权限

  • android.permission.BIND_DEVICE_ADMIN - 任何设备管理广播接收器都必须请求此权限,以确保只有系统可以与其交互。
  • android.permission.KILL_BACKGROUND_PROCESSES - 允许应用调用 killBackgroundProcesses(String)
  • android.permission.BIND_WALLPAPER - 任何 WallpaperService 都必须请求此权限,以确保只有系统可以与其交互。
  • android.permission.SET_TIME - 允许应用设置系统时间。

API 差异报告

如需详细了解 Android 2.2(API 级别 8)中的所有 API 变更,请参阅 API 差异报告