Android 2.3 平台为用户和开发者引入了许多令人兴奋的新功能。本文档简要介绍了 Android 2.3 中的一些新功能和技术。如需详细了解新版开发者 API,请参阅 Android 2.3 版本说明。
用户相关的新功能
![](https://developer.android.google.cn/static/sdk/images/2.3/home-menu.png?authuser=3&hl=sk)
![](https://developer.android.google.cn/static/sdk/images/2.3/home-plain.png?authuser=3&hl=sk)
界面优化,以实现简洁性和速度
该界面通过多种方式优化了系统,使其更易于学习、使用更快速且更节能。黑色和黑色相配的简化视觉主题可让通知栏、菜单和界面的其他部分形成鲜明对比。通过更改菜单和设置,用户可以更轻松地导航和控制系统和设备的功能。
更快速、更直观的文字输入
Android 软键盘经过重新设计和优化,可以更快地输入和修改文本。按键本身的形状和位置都调整了,以便优化定位效果,使按键更易于查看和准确按下,即使在高速状态下也是如此。键盘还会以更大、更鲜明的样式显示当前字符和字典建议,以便于阅读。
键盘添加了根据字典中的建议更正输入的字词的功能。当用户选择已输入的单词时,键盘会显示用户可以选择的建议来替换所选内容。用户还可以切换到语音输入模式来替换所选内容。智能建议可让用户接受建议,以后需要时还可以根据原始建议集进行更正。
借助新的多点触控按键和弦功能,用户可以通过按 Shift+<字母> 和 ?123+<符号> 快速输入数字和符号,而无需手动切换输入模式。在某些键中,用户还可以访问包含重音字符、数字和符号的弹出式菜单,只需按住该键并滑动以选择某个字符即可。
![](https://developer.android.google.cn/static/sdk/images/2.3/onetouch.png?authuser=3&hl=sk)
![](https://developer.android.google.cn/static/sdk/images/2.3/selection.png?authuser=3&hl=sk)
一键选择和复制/粘贴字词
在输入文本或查看网页时,用户只需按住即可快速选择某个字词,然后将其复制到剪贴板并粘贴。按某个字词会进入自由选择模式 - 用户可以根据需要调整选择区域,方法是将一组边界箭头拖动到新的位置,然后按选择区域中的任意位置来复制该边界区域。对于文本输入,用户可以进行滑动以进入光标模式,然后通过拖动光标箭头轻松准确地重新定位光标。使用选择模式和光标模式时,无需使用轨迹球。
![](https://developer.android.google.cn/static/sdk/images/2.3/running.png?authuser=3&hl=sk)
![](https://developer.android.google.cn/static/sdk/images/2.3/power.png?authuser=3&hl=sk)
改进了电源管理
在管理使设备长时间保持唤醒状态或在后台运行时消耗 CPU 的应用方面,Android 系统发挥着更积极的作用。通过管理这类应用(在适当情况下将其关闭),系统有助于确保实现最佳性能和最长电池续航时间。
系统还可让用户更好地了解系统组件和正在运行的应用的功耗。应用设置可以准确概述电池使用情况,并详细说明每个组件或应用的使用情况和相对耗电量。
对应用的控制
现在,主屏幕和启动器的“选项”菜单中新增了“管理应用”控件的快捷方式,更便于您查看和管理应用活动。用户进入“管理应用”后,新的“正在运行”标签页会显示活跃应用的列表,以及每个应用占用的存储空间和内存。用户可以阅读有关每个应用的更多详细信息,并可在必要时停止某个应用或向其开发者报告反馈。
新的沟通和组织方式
通过一组更新后的标准应用,用户可以采用新的方法来管理信息和关系。
![](https://developer.android.google.cn/static/sdk/images/2.3/sipcall.png?authuser=3&hl=sk)
![](https://developer.android.google.cn/static/sdk/images/2.3/ffc.png?authuser=3&hl=sk)
互联网电话
用户可以通过互联网向拥有 SIP 帐号的其他用户拨打语音通话。用户可以向任何联系人添加互联网呼叫号码(SIP 地址),并且可以通过“快速联系人”或“拨号器”拨打电话。如需使用互联网电话,用户必须在他们选择的 SIP 提供商处创建帐号。SIP 帐号不会作为互联网通话功能的一部分提供。此外,特定设备是否支持平台的 SIP 和互联网通话功能由其制造商和相关运营商决定。
![](https://developer.android.google.cn/static/sdk/images/2.3/nfc.png?authuser=3&hl=sk)
近距离无线通信
借助 NFC 读取器应用,用户可以读取近距离无线通信 (NFC) 标签并与之互动。例如,用户可以“轻触”或“滑动”可能嵌入海报、贴纸或广告的 NFC 标签,然后对从该标签读取的数据执行操作。一种典型用途是读取餐馆、商店或活动中的代码,然后通过跳转到代码数据中包含网址的网站进行评分或注册。NFC 通信依赖于设备硬件中的无线技术,因此特定设备上是否支持平台 NFC 功能由其制造商决定。
下载内容管理
通过“下载”应用,用户可以轻松访问从浏览器、电子邮件或其他应用下载的任何文件。下载内容基于系统中全新的下载管理器功能,任何其他应用都可以使用它来更轻松地管理和存储其下载内容。
相机
现在,该应用允许用户访问设备上的多个摄像头,包括前置摄像头(如有)。
新的开发者功能
Android 2.3 提供了各种功能和 API,可帮助开发者将新类型的应用引入 Android 平台。
针对游戏的增强功能
性能
Android 2.3 对整个系统进行了多项改进,可使所有应用更快、更高效地执行常见操作。游戏开发者尤其感兴趣的是:
- 并发垃圾回收器 - Dalvik 虚拟机引入了新的并发垃圾回收器,可最大限度地减少应用暂停,帮助确保动画更流畅,并提高游戏和类似应用的响应速度。
- 加快事件分发速度 - 现在,平台可以更快速、更高效地处理触摸和键盘事件,从而在事件分发期间最大限度降低 CPU 利用率。这些变更提高了所有应用的响应速度,对将触摸事件与 3D 图形或其他 CPU 密集型操作结合使用的游戏尤为有益。
- 更新了视频驱动程序 - 平台使用更新后的第三方视频驱动程序,可提高 OpenGL ES 操作的效率,从而加快 3D 图形的整体性能。
原生输入和传感器事件
使用原生代码的应用现在可以直接在其原生代码中接收和处理输入和传感器事件,从而显著提高效率和响应速度。
通过平台提供的原生库,应用可以处理与通过框架提供的事件相同的类型的输入事件。应用可以接收来自所有支持的传感器类型的事件,并且可以启用/停用特定传感器以及管理事件传送速率和队列。
陀螺仪和其他新传感器,用于改进 3D 运动处理
Android 2.3 增加了对几种新传感器类型的 API 支持,包括陀螺仪传感器、旋转矢量传感器、线性加速度传感器、重力传感器和气压计传感器。应用可以将新传感器与设备上可用的任何其他传感器结合使用,以高精确度和精确度跟踪三维设备的运动和方向变化。例如,游戏应用可以利用设备上的陀螺仪和加速度计的读数来识别复杂的用户手势和动作,例如倾斜、旋转、推力和切片。
适用于原生音频的开放式 API
该平台提供了 Khronos OpenSL ES 的软件实现,Khronos OpenSL ES 是一个标准 API,可让应用使用原生代码中的强大音频控件和效果。应用可以使用该 API 管理音频设备,并直接通过原生代码控制音频输入、输出和处理。
原生图形管理
平台提供了其 Khronos EGL 库的接口,使应用能够管理图形上下文,以及通过原生代码创建和管理 OpenGL ES 纹理和 Surface。
原生访问 activity 生命周期和窗口管理
原生应用可以声明一种新的 activity 类,即 NativeActivity
,其生命周期回调直接在原生代码中实现。NativeActivity
及其底层原生代码像其他 activity 一样在系统中运行 - 它们在应用的系统进程中运行,并在应用的主界面线程上执行,并且接收的生命周期回调与其他 activity 相同。
该平台还提供用于管理窗口的原生 API,包括锁定/解锁像素缓冲区以直接绘制其中的功能。通过该 API,应用可以获得与框架 Surface 对象关联的原生窗口对象,并直接在原生代码中与其交互。
对资源、存储空间的原生访问权限
应用现在可以访问原生 Asset Manager API,以直接从原生代码中检索应用资源,而无需通过 JNI。如果资源经过压缩,平台会在应用读取资源数据时执行流式解压缩。可读取的压缩 .apk
资源不再有大小限制。
此外,应用可以访问原生 Storage Manager API,以直接处理由系统下载和管理的 OBB 文件。请注意,虽然 Android 2.3 中提供了对 OBB 的平台支持,但用于创建和管理 OBB 文件的开发工具要到 2011 年初才可用。
强大的原生开发环境
Android NDK(r5 或更高版本)提供了一整套工具、工具链和库,以便开发使用 Android 2.3 平台提供的丰富原生环境的应用。如需了解详情或下载 NDK,请参阅 Android NDK 页面。
新沟通形式
互联网电话
开发者现在可以向其应用中添加基于 SIP 的互联网电话功能。Android 2.3 包含完整的 SIP 协议堆栈和集成式通话管理服务,可让应用轻松设置去电和来电语音通话,而无需直接管理会话、传输级通信或音频录制或播放。
具体设备是否支持平台的 SIP 和互联网通话功能由其制造商和相关运营商决定。
近距离无线通信 (NFC)
该平台支持近距离无线通信 (NFC),让开发者可以开始为 Android 开发一类全新的应用。开发者可以创建新应用,为用户、组织、商家和广告主提供基于邻近区域的信息和服务。
利用 NFC API,当用户将支持 NFC 的设备“轻触”到贴纸、智能海报甚至其他设备中嵌入的元素时,应用可以读取并响应“发现”的 NFC 标签。收集到感兴趣的标记后,应用可以响应该标记,从中读取消息,然后存储消息,并根据需要提示用户。
从 Android 2.3.3 开始,应用还可以写入标签,以及设置与其他 NFC 设备的点对点连接。
NFC 通信依赖于设备硬件中的无线技术,因此特定设备上是否支持平台 NFC 功能由其制造商决定。
富媒体多媒体
可混合的音频效果
借助新的音效 API,开发者可以添加均衡、低音增强、耳机虚拟化(扩大的声场)以及针对音轨和声音的混响,从而轻松创建丰富的音频环境。开发者可以在本地轨道中混合多种音频效果,也可以跨多个轨道全局应用效果。
支持新的媒体格式
该平台现在内置了对 VP8 开放视频压缩格式和 WebM 开放容器格式的支持。该平台还增加了对 AAC 编码和 AMR 宽带编码(在软件中)的支持,以便应用可以捕获比窄带更好的音频质量。
使用多个摄像头
现在,开发者可以通过 Camera API 访问设备上可用的任何摄像头,包括前置摄像头。应用可以向平台查询设备上的摄像头数量及其类型和特性,然后打开所需的摄像头。例如,视频聊天应用可能需要使用分辨率较低的前置摄像头,而照片应用可能需要使用分辨率更高的后置摄像头。
新平台技术
媒体框架
- 新的媒体框架完全取代了 OpenCore,同时保留了之前针对编码和解码的所有编解码器/容器支持。
- 集成了 VP8 开放视频压缩格式和 WebM 开放容器格式
- 添加了 AAC 编码和 AMR 宽带编码
Linux 内核
- 已升级到 2.6.35
网络
- SIP 堆栈,可由设备制造商配置
- 支持近距离无线通信 (NFC),可由设备制造商进行配置
- 更新后的 BlueZ 堆栈
Dalvik 运行时
- Dalvik 虚拟机:
- 并发垃圾回收器(目标低于 3 毫秒的暂停时间)
- 添加了进一步的 JIT(代码生成)优化
- 改进了代码验证
- StrictMode 调试,用于识别性能和内存问题
- 核心库:
- 扩展了 I18N 支持(全面覆盖全球编码,更多语言区域)
- 格式化程序和数字格式设置速度更快。例如,浮点数格式设置速度加快了 2.5 倍。
- HTTP 响应默认采用 Gzip 压缩。XML 和 JSON API 响应的大小可以缩减 60% 或更多。
- 新的集合和实用程序 API
- 改进了网络 API
- 改进了文件读写控件
- 已更新 JDBC
- 来自上游项目的更新:
- OpenSSL 1.0.0a
- BouncyCastle 1.45
- ICU 4.4
- zlib 1.2.5
如需详细了解新的开发者 API,请参阅 Android 2.3 版本说明和 API 差异报告。