Android 2.2 API

API 级别8

Android 2.2 是一个次要平台版本,包含用户功能、开发者功能、API 变更和 bug 修复。如需了解开发者功能和 API 变更,请参阅 Framework 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 级别文档。

框架 API 变更

以下部分介绍了对 Android 2.2 平台提供的应用框架 API 所做的更改。

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

Android 平台现在允许应用请求安装到设备的外部存储媒体(例如 SD 卡),而不是安装到设备的内部存储空间。

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

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

请注意,请求安装到设备的外部媒体并不适用于所有应用,尤其是因为外部媒体可能是可拆卸的,而卸载/重新挂载可能会干扰用户体验和系统设置。

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

数据备份

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

图形

媒体

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

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

相机和摄像机

设备政策管理器

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

界面框架

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

账号和同步

  • 借助新方法 AddPeriodicSync(),您可以安排定期与特定账号、权限和 extras 进行同步,并指定同步频率。

新的清单元素和属性

  • 如需指定应用的首选安装位置(请参阅上文中的在外部存储媒体上安装应用),请执行以下操作:
    • <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 差异报告