Android 3.0 API

API 级别11

Android 3.0 平台面向开发者 (HONEYCOMB) 可下载 组件。可下载平台包括一个 Android 库和系统 以及一组模拟器皮肤等可下载平台不包含任何外部 库。

对于开发者,Android 3.0 平台以 可下载组件该可下载平台包括: Android 库和系统映像,以及一组模拟器皮肤和 。要开始针对 Android 3.0 进行开发或测试, 使用 Android SDK 管理器将该平台下载到您的 SDK 中。

API 概览

以下各部分从技术层面上介绍了 Android 3.0 中面向开发者的新功能。 包括自上一个版本以来框架 API 中的新功能和变化。

Fragment

fragment 是一种新的框架组件,可让您将不同元素的不同元素 activity 转换为独立模块,这些模块可定义自己的界面和生命周期。要创建 fragment,因此必须扩展 Fragment 类并实现多个生命周期 回调方法,类似于 Activity。然后,您可以将多个 一个 Activity 中的多个 Fragment 来构建多窗格界面,其中每个 窗格管理自己的生命周期和用户输入。

您也可以在不提供界面的情况下使用 fragment,而是将 fragment 用作工作器 例如为了管理仅在 活动正在运行。

此外:

  • fragment 是独立的,您可以在多个 activity 中重复使用它们
  • 您可以在 activity 中添加、移除、替换 fragment 以及为其添加动画效果
  • 您可以将 fragment 添加到由 activity 管理的返回堆栈中,从而保留 并且允许用户通过不同的 州
  • 通过提供 替代布局,您可以根据 屏幕尺寸和方向
  • fragment 可以直接访问其容器活动,并且可以向 活动的操作栏(稍后讨论)

如需管理 activity 中的 fragment,您必须使用 FragmentManager,它提供了多种可与 fragment 交互的 API,例如 在 activity 中查找 fragment 以及从返回堆栈中弹出 fragment 以恢复其 之前的状态。

如需执行添加或移除 fragment 等事务,您必须创建一个 FragmentTransaction。然后,您可以调用 add()remove()replace() 等方法。应用了所有 要对事务执行的更改,则必须调用 commit(),并且系统会将 fragment 事务应用于 相应活动

如需详细了解如何使用 fragment,请参阅 fragment 文档。若干 API Demos 应用。

操作栏

操作栏用于替代 activity 窗口顶部的传统标题栏。 它的左上角包括应用徽标,并为 选项菜单。此外, 通过操作栏,您可以:

  • 直接在操作栏中添加菜单项(作为“操作项”)。

    在菜单项的 XML 声明中,添加值为 "ifRoom"android:showAsAction 属性。当空间充足时,菜单 项目。否则,系统会将该商品放置在 溢出菜单,通过操作栏右侧的菜单图标显示。

  • 将操作项替换为微件(例如搜索框),从而创建一个 “action view”。

    在菜单项的 XML 声明中,添加 android:actionViewLayout 属性 具有布局资源或类名称为android:actionViewClass 微件。(您还必须声明 android:showAsAction 属性,以便商品显示 。)如果操作栏空间不足,且相应项显示在 菜单,其行为类似于常规菜单项,不会显示该 widget。

  • 向应用徽标添加操作,并将其替换为自定义徽标

    系统会自动为应用徽标分配 android.R.id.home ID, 系统会在轻触时将其传递给 Activity 的 onOptionsItemSelected() 回调。只需在回调中响应此 ID 执行转到应用“首页”等操作的方法活动。

    要将图标替换为徽标,请在清单文件中使用 android:logo 属性,然后在 activity 中调用 setDisplayUseLogoEnabled(true)

  • 添加面包屑导航,以便在 fragment 的返回堆栈中向后导航
  • 添加标签页或下拉列表以浏览 fragment
  • 使用各种主题和背景定制操作栏

操作栏是所有使用新全息主题( 将 android:minSdkVersionandroid:targetSdkVersion 设置为 "11" 时也处于标准状态。

如需详细了解操作栏,请参阅操作栏文档。若干 API Demos 应用。

系统剪贴板

现在,应用可在整个系统范围内复制数据(不仅仅是文本) 剪贴板。裁剪数据可以是纯文本、URI 或 intent。

通过内容提供程序向系统提供您希望用户复制的数据的访问权限, 用户可以从您的应用中复制复杂内容(例如图片或数据结构),并且 并将其粘贴到支持此类内容的其他应用程序中。

如需开始使用剪贴板,请获取全局 ClipboardManager 对象 方法是调用 getSystemService(CLIPBOARD_SERVICE)

如需将内容复制到剪贴板,您需要创建一个新的 ClipData 对象,其中包含一个或多个 ClipData.Item 对象,每个对象描述一个实体。创建 ClipData 对象 只有一个 ClipData.Item,则可以使用其中一种辅助方法, 例如 newPlainText()newUri()newIntent(),它们都会返回一个预先加载了ClipData ClipData.Item

如需将 ClipData 添加到剪贴板,请将其传递给 ClipboardManager 实例的 setPrimaryClip()

然后,您可以通过对 ClipboardManager 调用 getPrimaryClip() 来读取剪贴板中的文件(以便粘贴)。处理您收到的 ClipData 可以 这很复杂,您需要确保您可以实际处理剪贴板中的数据类型 然后再尝试粘贴

剪贴板中只有一段裁剪数据(一个 ClipData 对象),但一个 ClipData 可以包含多个 ClipData.Item

有关详情,请参阅复制 和粘贴文档。您还可以在 API 演示中查看复制和粘贴的简单实现。 示例,以及在记事本示例中提供更完整的实现。

拖放

新 API 简化了应用界面中的拖放操作。拖动 操作是指传输某种类型的数据 - 包含在 ClipData 中 对象)从一个位置转移到另一个位置。拖动操作的起点和终点是 View,因此直接处理拖放操作的 API 为 (位于 View 类中)。

拖放操作的生命周期由若干拖动操作定义,每个 由 DragEvent 对象定义,例如 ACTION_DRAG_STARTEDACTION_DRAG_ENTEREDACTION_DROP。想要参与拖动的每个视图 操作可以监听这些操作。

如需开始拖动 activity 中的内容,请调用 startDrag()View 上,提供一个代表以下内容的 ClipData 对象: 要拖动的数据,使用 View.DragShadowBuilder 辅助创建“阴影” 用户拖动手指时会看到的对话框,以及可以共享的 Object。 拖动对象的相关信息,以及可接收对象的视图。

如需在 View 中接受拖动对象(接收“放下”操作),请注册视图 并使用 OnDragListener 调用 setOnDragListener()。当视图上发生拖动事件时, 系统会为 OnDragListener 调用 onDrag(),后者会收到 DragEvent 用于描述已发生的拖动操作类型(例如 ACTION_DRAG_STARTEDACTION_DRAG_ENTEREDACTION_DROP)。在拖动期间,系统会针对拖动下方的视图反复调用 onDrag(),以传递 事件流。接收视图可以通过对 DragEvent 调用 getAction() 来查询传递给 onDragEvent() 的事件类型。

注意:虽然拖动事件可能会携带 ClipData 对象,但这与系统剪贴板无关。拖放 操作绝不应将拖动的数据放入系统剪贴板。

有关详情,请参阅拖动和 Dropping 文档。您还可以在 API 演示应用和 Honeycomb Gallery 应用。

应用微件

Android 3.0 支持几个新的 widget 类,用于为用户提供更具互动性的应用 widget 主屏幕,包括:GridViewListViewStackViewViewFlipperAdapterViewFlipper

更重要的是,您可以使用新的 RemoteViewsService 来创建应用 包含集合的 widget,使用远程数据支持的 GridViewListViewStackView 等 widget; 例如来自内容提供方

AppWidgetProviderInfo 类(在 XML 中使用 <appwidget-provider> 元素定义)也支持两个新字段:autoAdvanceViewIdpreviewImageautoAdvanceViewId字段可让您指定 应由应用 widget 的托管方自动高级的应用 widget 子视图。通过 previewImage 字段用于指定 应用 widget 的外观和通过 widget 选择器向用户显示。如果此字段不是 应用微件的图标将用于预览。

为了帮助创建应用 widget 的预览图片(在 previewImage 字段中指定),Android 模拟器包含一个 名为“Widget Preview”的应用要创建预览图片,请启动此应用,选择 应用微件,并设置您希望预览图片的显示方式,然后保存 并将其放入应用的可绘制资源中。

您可以在 StackView 应用微件天气列表微件中查看新应用微件功能的实现 应用。

状态栏通知

Notification API 已经过扩展,可支持更多内容状态 栏通知,以及新的 Notification.Builder 类,可让您轻松 创建 Notification 对象。

新功能包括:

  • 支持使用 setLargeIcon() 在通知中使用大图标。这通常用于 社交应用程序,用于显示发件人的联系人照片, 通知或媒体应用显示专辑缩略图。
  • 支持使用 setTicker() 在状态栏置顶栏中使用自定义布局。
  • 支持自定义通知布局,以添加带有 PendingIntent 的按钮,从而实现更具互动性的通知 widget。例如, 通知可以在不启动 activity 的情况下控制音乐播放。

内容加载器

新的框架 API 支持使用 Loader 类异步加载数据。您可以将其与界面组件(例如视图和 fragment,用于从工作器线程动态加载数据。CursorLoader 子类专门用于帮助您对 一个 ContentProvider

您只需实现 LoaderCallbacks 接口,即可在请求新加载器或数据 则调用 initLoader() 以初始化 加载程序。

如需了解详情,请阅读加载器文档。您还可以查看 使用 LoaderCursor 中加载器的示例代码 和 LoaderThrottle 示例。

蓝牙 A2DP 和耳机 API

Android 现在包含一些 API,供应用验证已连接的蓝牙 A2DP 的状态 耳机配置文件设备。例如,应用可以识别蓝牙耳机何时 以便聆听音乐,并根据需要通知用户。应用还可以 针对供应商特定 AT 命令进行广播,并通知用户连接状态 例如当所连接设备的电池电量不足时。

您可以通过使用 A2DPHEADSET 调用 getProfileProxy() 来初始化相应的 BluetoothProfile。 配置文件常量和一个用于接收的 BluetoothProfile.ServiceListener 回调。

动画框架

全新的灵活动画框架可让您为任何对象的任意属性添加动画效果 (视图、可绘制对象、Fragment、对象或任何其他内容)。它允许您定义 例如:

  • 时长
  • 重复数量和行为
  • 时间插值类型
  • Animator 设置为一起、按顺序或在指定延迟之后播放动画
  • 帧刷新延迟

您可以为对象的 int、float 和十六进制类型定义这些动画方面和其他方面 颜色值。也就是说,当对象具有其中一种类型的属性字段时, 可以随着时间的推移更改其值来影响动画。要为任何其他类型的值添加动画效果,您可以指示 通过实现 TypeEvaluator 接口,让系统如何计算给定类型的值。

您可以使用以下两个 Animator 为属性值添加动画效果:ValueAnimatorObjectAnimatorValueAnimator 会计算动画值,但不知道具体的 以动画形式呈现的对象或属性。它只执行计算, 监听更新并使用自己的逻辑处理数据。ObjectAnimatorValueAnimator 的子类, 可让您设置要添加动画的对象和属性,该方法会处理所有动画工作。 也就是说,您需要为 ObjectAnimator 提供要添加动画效果的对象, 属性,以及应用于该属性的一组值 然后开始播放动画。

此外,LayoutTransition 类还支持自动转场 动画效果。要为部分元素启用过渡效果,请执行以下操作: 创建一个 LayoutTransition 对象,并将其设置为 任何 ViewGroup 都可通过调用 setLayoutTransition() 触发。这会导致 动画。要指定自定义 对 LayoutTransition 调用 setAnimator(),并提供自定义 Animator。 例如 ValueAnimatorObjectAnimator

如需了解详情,请参阅属性动画文档。您可以 还可查看使用 API 中动画 API 的几个示例 演示应用。

扩展的界面框架

  • ListView 和 GridView 的单选题选项

    setChoiceMode() 的新 CHOICE_MODE_MULTIPLE_MODAL 模式可让用户选择多项内容 (通过 ListViewGridView)。在以下环境中使用时 与操作栏结合使用时,用户可以选择多个项目,然后选择要 操作栏的选项列表(现已转换为 操作模式)。

    要启用单选题,请调用 setChoiceMode(CHOICE_MODE_MULTIPLE_MODAL) 并注册 MultiChoiceModeListenersetMultiChoiceModeListener()

    当用户长按某项内容时,操作栏会切换为“多选” 操作模式。项被选中时,系统会通过调用 onItemCheckedStateChanged() 通知 MultiChoiceModeListener

    有关多选选择的示例,请参阅 List15. Java 类。

  • 用于转换视图的新 API

    借助新的 API,您可以轻松地将 2D 和 3D 转换应用于 Activity 中的视图 布局。新的转换可以使用一组定义视图的 布局位置、方向、透明度等。

    用于设置视图属性的新方法包括:setAlpha()setBottom()setLeft()setRight()setBottom()setPivotX()setPivotY()setRotationX()setRotationY()setScaleX()setScaleY()setAlpha() 等。

    某些方法还有对应的 XML 属性,您可以在布局中指定该属性 文件,以应用默认转换。可用的属性包括:translationXtranslationYrotation rotationXrotationYscaleXscaleYtransformPivotXtransformPivotYalpha

    将部分新的视图属性与新的动画框架结合使用(讨论 因此,您可以轻松对视图应用一些精美的动画。例如,要旋转 为 ObjectAnimator 提供 View,即“rotationY”属性,并设置起始值和结束值:

    Kotlin

    ObjectAnimator.ofFloat(myView, "rotationY", 0f, 360f).apply {
        duration = 2000
        start()
    }
    

    Java

    ObjectAnimator animator = ObjectAnimator.ofFloat(myView, "rotationY", 0, 360);
    animator.setDuration(2000);
    animator.start();
    
  • 新的全息主题

    重新设计了标准系统微件和整体外观,并纳入了 “全息”界面主题系统会应用新主题 使用标准的样式和主题系统。

    任何以 Android 3.0 平台为目标平台的应用,通过设置 android:minSdkVersionandroid:targetSdkVersion 值设为 "11" - 系统会默认沿用全息主题。 但是,如果您的应用还应用了自己的主题,则您的主题将覆盖 全息主题,除非您更新样式以继承全息主题。

    将全息主题应用于个别 activity,或在您自己的主题中继承这些主题 定义,请从下列新 Theme.Holo 中选择一个 主题。如果您的应用与 Android 3.0 之前的版本兼容,并应用 自定义主题,那么您应该根据平台选择主题 version

  • 新的微件 <ph type="x-smartling-placeholder">
      </ph>
    • AdapterViewAnimator

      在切换时执行动画的 AdapterView 的基类 调整其视图之间的距离

    • AdapterViewFlipper

      简单的 ViewAnimator,用于在两个或多个具有 已添加到该文件夹中一次只能显示一个子级。它可以根据要求自动翻转 介于 定期更新每个子节点。

    • CalendarView

      允许用户通过触摸日期从日历中选择日期,并可以滚动或滑动 根据需要调整日历您可以在微件中配置可用日期范围。

    • ListPopupWindow

      将自身锚定到托管视图,并显示选项列表,例如 EditText视图中键入内容时的建议。

    • NumberPicker

      允许用户从预定义范围中选择一个数字。该 widget 提供 字段以及向上和向下按钮,用于选择数字。触摸输入字段可允许用户 滚动浏览值或再次触摸即可直接修改当前值。它还允许您将 字符串,以便显示相应的字符串,而不是索引 排名。

    • PopupMenu

      在锚定到视图的模态弹出式窗口中显示 Menu。通过 如果空间足够,则弹出式内容显示在锚点视图下方;如果没有空间,则显示在其上方。如果 IME(软 键盘),则弹出式内容不会与其 IME 重叠,除非用户触摸 菜单。

    • SearchView

      提供一个搜索框,您可以对其进行配置以将搜索查询发送到指定的 activity 并显示搜索建议(与传统搜索对话框的方式相同)。这个 微件对于在操作栏中提供搜索微件特别有用。如需更多信息 请参阅创建搜索界面

    • StackView

      一种视图,可在 3D 堆叠中显示其子项,并允许用户滑动浏览 就像 Rolodex 一样。

图形

  • 硬件加速 2D 图形

    现在,您可以通过在清单元素的 <application> 中设置 android:hardwareAccelerated="true",为您的应用启用 OpenGL 渲染程序 元素或单个 <activity> 元素。

    此标志有助于应用加快绘制速度。这会使动画更加流畅 滚动浏览更顺畅,同时提升了性能和对用户互动的响应。

  • 查看对硬件和软件层的支持

    默认情况下,View 未指定图层。您可以指定 视图由硬件或软件层(由值 LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE 指定)支持,并使用 setLayerType()layerType 属性。

    硬件层由硬件特定的纹理(通常是帧缓冲区对象或 FBO)并使视图使用 Android 的硬件渲染进行渲染 但前提是为视图层次结构启用了硬件加速。当硬件 加速,则硬件层的行为与软件层完全相同。

    软件层由位图提供支持,并使用 Android 的 软件渲染流水线,即使启用了硬件加速。软件层应该 在受影响的视图树经常更新时避免。每次更新都需要重新渲染 软件层,其运行速度可能较慢。

    如需了解详情,请参阅 LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE 文档。

  • RenderScript 3D 图形引擎

    Renderscript 是一种运行时 3D 框架,它既提供用于构建 3D 场景的 API, 作为一种独立于平台的特殊着色器语言,以实现最佳性能。通过使用 Renderscript 可以加快图形操作和数据处理的速度。RenderScript 是一种 为应用、壁纸、轮播界面等对象添加高性能 3D 效果。

    有关详情,请参阅使用 Renderscript 文档。

媒体

  • 延时摄影视频

    Camcorder API 现已支持录制延时摄影视频。setCaptureRate()会设置帧的帧速率 。

  • 图像流的纹理支持

    新的 SurfaceTexture 允许您将图像流捕获为 OpenGL ES 纹理。致电 setPreviewTexture() Camera 实例,您可以指定要在哪个 SurfaceTexture 上绘制视频播放或预览帧,即从 摄像头。

  • HTTP Live Streaming

    应用现在可以将 M3U 播放列表网址传递给媒体框架,以启动 HTTP Live 流式传输会话。该媒体框架支持大多数 HTTP Live Streaming 规范, 包括自适应比特率请参阅支持的媒体格式文档,了解 。

  • EXIF 数据

    ExifInterface包含有关照片光圈、ISO 和曝光的新字段 。

  • 摄像机配置文件

    新增了 hasProfile() 方法和几个视频 画质配置文件(例如 QUALITY_1080PQUALITY_720PQUALITY_CIF 等)可让您确定摄像机 画质选项

  • 数字媒体文件传输

    该平台内置了对通过 USB 传输的媒体/图片传输协议 (MTP/PTP) 的支持, 让用户可以轻松地在设备之间和主机之间传输任何类型的媒体文件。 开发者可以在此支持的基础上,开发可让用户创建或管理丰富内容的 来跨设备传输或分享的媒体文件。

  • 数字版权管理 (DRM)

    用于检查和强制执行数字版权管理的全新可扩展数字版权管理 (DRM) 框架 权利。它在两个架构层中实现:

    • DRM Framework API:提供给应用并通过 Dalvik VM 运行 标准应用
    • 一个原生代码 DRM 管理器,用于实现框架 API 并为 DRM 公开接口 用于处理各种 DRM 方案的版权管理和解密的插件。

    对于应用程序开发者,该框架提供了一个抽象、统一的 API,简化了 对受保护内容的管理。该 API 隐藏了 DRM 操作的复杂性,并允许 对受保护内容、不受保护的内容以及各种 DRM 应用采用一致的操作模式 架构。

    对于设备制造商、内容所有者和互联网数字媒体提供商,DRM 框架的插件 API 提供了一种方法,可将对所选 DRM 方案的支持添加到 Android 系统,用于安全强制执行内容保护。

    预览版不提供用于检查和强制执行数字版权管理规定的任何原生 DRM 插件 权利。不过,设备制造商可能会为其设备搭载 DRM 插件。

    您可以在 android.drm 软件包中找到所有 DRM API。

键盘支持

  • 支持 Ctrl、Meta、Caps Lock、Num Lock 和滚动锁定修饰符。如需更多信息 请参阅 META_CTRL_ON 和相关字段。
  • 支持完整的桌面设备式键盘,包括支持 Esc 键、Home 键、End 键 Delete 等。您可以通过以下方式确定按键事件是否来自全键盘 查询 getKeyboardType() 并检查 KeyCharacterMap.FULL
  • TextView 现在支持基于键盘的剪切、复制 使用组合键 Ctrl+X、Ctrl+C Ctrl+V 和 Ctrl+A。它还支持 PageUp/PageDown、Home/End 和 基于键盘的文本选择。
  • KeyEvent 添加了几种新方法,以便您更轻松地检查密钥 修饰符状态正确且一致。请参阅hasModifiers(int)hasNoModifiers(), metaStateHasModifiers(), metaStateHasNoModifiers()
  • 应用可以通过创建 ActivityDialogView 的子类并实现 onKeyShortcut()。框架调用此方法 当某个键与 Ctrl 键结合使用时。创建选项菜单时,您可以注册键盘 为每个 <item> 设置 android:alphabeticShortcutandroid:numericShortcut 属性。 元素(或使用 setShortcut())。
  • Android 3.0 包含一个新的“虚拟键盘”ID 为 KeyCharacterMap.VIRTUAL_KEYBOARD 的设备。虚拟 键盘具有桌面设备样式的美式按键映射,可用于合成按键事件以进行测试 输入。

拆分触摸事件

以前,一次只能有一个视图接受触摸事件。Android 3.0 添加了对跨视图甚至窗口拆分触摸事件的支持,以便不同的视图可以接受 同时触摸事件。

当应用指向某个目标时,系统会默认启用拆分触摸事件 Android 3.0。也就是说,当应用设置了 android:minSdkVersion 或将 android:targetSdkVersion 属性的值设为 "11"

不过,以下属性允许您停用内部视图之间的拆分触摸事件 特定视图组和多个窗口。

  • 视图组的 android:splitMotionEvents 属性 用于停用布局中子视图之间发生的拆分触摸事件。例如:
    <LinearLayout android:splitMotionEvents="false" ... >
        ...
    </LinearLayout>
    

    这样,线性布局中的子视图无法拆分触摸事件 - 只有一个视图可以拆分触摸事件 同时接收触摸事件。

  • android:windowEnableSplitTouch 样式属性 允许您通过将触摸事件应用到 Activity 的主题来停用跨窗口的拆分触摸事件 或整个应用例如:
    <style name="NoSplitMotionEvents" parent="android:Theme.Holo">
        <item name="android:windowEnableSplitTouch">false</item>
        ...
    </style>
    

    将此主题应用于 <activity><application> 后, 系统只接受当前 Activity 窗口中的触摸事件。例如,通过停用分屏 多个窗口的触摸事件,系统栏无法与 活动。这不会影响 activity 内的视图是否可以拆分轻触 事件 - 默认情况下,Activity 仍可跨视图拆分触摸事件。

    如需详细了解如何创建主题,请参阅应用样式和主题

WebKit

  • 新增了 WebViewFragment 类,用于创建由 WebView
  • 新增了 WebSettings 方法: <ph type="x-smartling-placeholder">
  • 新增了 WebView 方法: <ph type="x-smartling-placeholder">
      </ph>
    • onPause() 回调,用于暂停任何处理 与 WebView 相关联。这有助于减少不必要的 CPU 或 WebView 不在前台运行时的网络流量。
    • onResume() 回调,用于继续处理 与 WebView 相关联,但后者在 onPause() 期间处于暂停状态。
    • saveWebArchive() 可让您将 在设备上以网页存档的形式呈现当前视图。
    • showFindDialog() 发起文字搜索 当前视图

浏览器

浏览器应用添加了以下功能来支持网络应用:

  • 媒体截取

    根据 HTML 媒体捕获的定义, 浏览器允许网络应用访问音频、图片和视频捕获, 设备的功能。例如,以下 HTML 为用户提供了输入, 拍摄照片并上传:

    <input type="file" accept="image/*;capture=camera" />
    

    或者,通过排除 capture=camera 参数,用户可以选择捕获 使用相机拍摄新图片或从设备(例如从“图库”应用程序中)中选择一张图片。

  • 设备屏幕方向

    设备屏幕方向事件定义 符合规范,则浏览器允许网络应用监听 DOM 事件,这些事件提供 与设备的物理方向和运动有关。

    设备方向通过 x 轴、y 轴和 z 轴表示,以度为单位,动作为 以加速度和旋转率数据表示。网页可以注册屏幕方向 以事件类型 "deviceorientation" 调用 window.addEventListener 以及通过注册 "devicemotion" 事件类型来注册动作事件。

  • CSS 3D 转换

    正如使用 CSS 3D Transform Module 规范进行转换,浏览器允许将 CSS 渲染的元素转换为 维度。

JSON 实用程序

新课程“JsonReader”和“JsonWriter”可以帮到你 读写 JSON 流。新 API 是对 org.json 类的补充,后者用于操控 在内存中保存文档

您可以通过调用JsonReader 其构造函数方法,并传递向 JSON 字符串提供数据的 InputStreamReader。 然后,通过调用 beginObject() 开始读取对象, 键名和 nextName(),使用方法读取值 (例如 nextString()nextInt()),然后在 hasNext() 为 true 时继续这样做。

您可以通过调用 JsonWriter 的构造函数并 传递相应的 OutputStreamWriter。然后以某种方式写入 JSON 数据, 与读取器类似,使用 name() 添加属性名称 以及适当的 value() 方法,以添加相应的 值。

这些类默认严格。setLenient() 方法将其配置为对接受的内容更加宽松。这种宽松 解析模式还与 org.json 的默认解析器兼容。

新功能常量

<uses-feature> manfest 元素应该用于告知外部实体(如 Google Play) 应用所依赖的硬件和软件功能。在此版本中,Android 增加了 应用可使用此元素声明的新常量:

  • "android.hardware.faketouch"

    声明后,这表示应用与提供 模拟触摸屏(或性能更佳)。提供模拟触摸屏的设备以提供用户输入 可以模拟部分触摸屏的系统 功能。例如,驱动 屏幕上的光标。此类输入系统支持基本的触摸事件,如点击向下、点击和拖动。 但是,更复杂的输入类型(例如手势、快速滑动等)可能更加困难或 这在模拟触摸设备上是不可能实现的(多点触控手势也绝对不可能实现)。

    如果您的应用不需要复杂的手势,并且您确实需要 不希望从具有模拟触摸屏的设备中滤除您的应用, 应使用 <uses-feature> 声明 "android.hardware.faketouch" 元素。这样,您的应用将可供尽可能多的设备类型使用, 包括仅提供模拟触摸屏输入的设备。

    所有配有触摸屏的设备也支持 "android.hardware.faketouch",因为 触摸屏功能是模拟触摸功能的一个超集。因此,除非您确实需要 那么您应该添加一个 <uses-feature> 元素。

新权限

新平台技术

  • 存储空间 <ph type="x-smartling-placeholder">
      </ph>
    • ext4 文件系统支持,以启用板载 eMMC 存储。
    • FUSE 文件系统以支持 MTP 设备。
    • USB 主机模式支持,可支持键盘和 USB 集线器。
    • 支持 MTP/PTP
  • Linux 内核 <ph type="x-smartling-placeholder">
      </ph>
    • 已升级到 2.6.36
  • Dalvik 虚拟机 <ph type="x-smartling-placeholder">
      </ph>
    • 支持并针对 SMP 进行优化的新代码
    • 对 JIT 基础架构进行了多项改进
    • 垃圾回收器改进: <ph type="x-smartling-placeholder">
        </ph>
      • 针对 SMP 调谐
      • 支持更大的堆大小
      • 对位图和字节缓冲区进行统一处理
  • Dalvik 核心库 <ph type="x-smartling-placeholder">
      </ph>
    • 新的 NIO(现代 I/O 库)实现速度更快
    • 改进了异常消息
    • 整个过程中的正确性和性能修复

API 差异报告

有关 Android 3.0(API 级别)中所有 API 变更的详细视图 11),请参阅 API 差异报告

API 级别

Android 3.0 平台提供了 框架 API。Android 3.0 API 分配了整数标识符 - 11 - 即 存储在系统本身中。此标识符称为“API 级别”,允许 正确确定应用是否与 然后再安装应用程序。

要在您的应用中使用 Android 3.0 中引入的 API,请执行以下操作: 您需要根据此 API 中提供的 Android 库 Android 3.0 SDK 平台。您可以根据需要 还需要添加一个 android:minSdkVersion="11" 属性添加到应用的 <uses-sdk> 元素中, 清单。如果您的应用仅设计为在 Android 2.3 及更高版本上运行, 声明该属性可防止在更早的 平台。

有关详情,请参阅什么是 API 水平?