Android KitKat

手机和平板电脑上的 Android 4.4

欢迎使用 Android 4.4 KitKat!

Android KitKat 将 Android 所有最具创新、最美妙和最有用的功能推广至全球更多的设备。

本文档简要介绍了面向开发者的新变化。

如需详细了解面向消费者的 KitKat,请访问 www.android.com

让 Android 适用于所有人

Android 4.4 可在比以往更广泛的设备上快速、流畅且响应迅速地运行,包括全球数百万部只有 512MB RAM 的入门级设备。

KitKat 简化了每个主要组件以减少内存使用量,并引入了新的 API 和工具来帮助您构建响应迅速、内存效率高的创新应用。

构建新一代 Android 设备的 OEM 可以利用有针对性的推荐和选项高效运行 Android 4.4,即使在低内存设备上也是如此。Dalvik JIT 代码缓存调整、内核同页合并 (KSM)、zRAM 交换和其他优化有助于管理内存。原始设备制造商 (OEM) 可以通过新的配置选项微调进程的内存不足级别、设置图形缓存大小、控制内存回收,等等。

在 Android 本身中,对系统所做的更改可以改进内存管理并减少内存占用。削减核心系统进程以减少使用的堆,现在它们会更加积极地保护系统内存,使其免受消耗大量 RAM 的应用的影响。现在,当多项服务同时启动时(例如网络连接发生变化时),Android 会以小组形式依次启动这些服务,以避免峰值内存需求。

对于开发者来说,Android 4.4 可帮助您在所有设备上提供高效且响应迅速的应用。利用一个新 API ActivityManager.isLowRamDevice(),您可以调整应用的行为,使其与设备的内存配置相匹配。 您可以根据需要修改或停用大内存功能,具体取决于您希望在入门级设备上支持的用例。如需详细了解如何针对低内存设备优化应用,请点击此处

新工具还可以让您深入分析应用的内存使用情况。procstats 工具详细列出一段时间内的内存使用量,以及前台应用和后台服务的运行时间和内存占用量。您还可以使用设备端视图作为新的开发者选项。meminfo 工具得到增强,可以更轻松地发现内存趋势和问题,还可以显示之前不可见的额外内存开销。

通过主机卡模拟实现新的 NFC 功能

Android 4.4 引入了新的平台支持,该平台支持通过主机卡模拟 (HCE) 进行基于 NFC 的安全交易,可用于付款、会员卡、卡访问、公交卡和其他自定义服务。借助 HCE,Android 设备上的任何应用都可以模拟 NFC 智能卡,以便用户通过点按发起与所选应用的交易,而无需在设备中配置安全元件 (SE)。应用还可以使用新的读取器模式充当 HCE 卡和其他基于 NFC 的交易的读取器。

感应式付款符号

Android HCE 模拟基于 ISO/IEC 7816 的智能卡,这些卡使用感应式 ISO/IEC 14443-4 (ISO-DEP) 协议进行传输。如今,包括现有的 EMVCO NFC 支付基础架构在内的许多系统都在使用这些卡。 Android 以 ISO/IEC 7816-4 中定义的应用标识符 (AID) 为基础,将事务路由到正确的 Android 应用。

应用会在其清单文件中声明支持的 AID,以及表明可用支持类型的类别标识符(例如“付款”)。如果多个应用支持同一类别的同一 AID,Android 会显示一个对话框,让用户选择要使用的应用。

当用户在销售终端进行感应式付款时,系统会提取首选 AID 并将交易路由到正确的应用。应用读取交易数据,并且可以使用任何本地或基于网络的服务来验证然后完成交易。

Android HCE 要求设备具有 NFC 控制器。大多数 NFC 控制器已广泛支持 HCE,这些控制器同时为 HCE 和 SE 交易提供动态支持。支持 NFC 的 Android 4.4 设备将提供触碰付款功能,方便您使用 HCE 轻松付款。

打印框架

Android 应用现在可以通过 WLAN 或云托管服务(如 Google 云打印)打印任何类型的内容。在支持打印的应用中,用户可以发现可用的打印机、更改纸张大小、选择要打印的具体页面,以及打印几乎任何类型的文档、图片或文件。

Android 4.4 引入了对打印的原生平台支持,以及用于管理打印和添加新类型的打印机支持的 API。平台提供了一个打印管理器,用于在请求打印的应用和已安装的负责处理打印请求的打印服务之间进行协调。打印管理器提供共享服务和系统打印界面,以便用户一致地控制从任何应用的打印。打印管理器还可确保内容在从应用到打印服务的各个进程之间传递时的安全性。

移动设备处于横屏模式,显示了打印机支持功能

您可以向应用添加打印支持,也可以开发打印服务来支持特定类型的打印机。

打印机制造商可以使用新的 API 开发自己的打印服务,即添加供应商特定逻辑和服务以便与特定类型的打印机进行通信的可插入组件。他们可以构建打印服务并通过 Google Play 分发服务,以便用户能够轻松找到这些服务并在其设备上安装。与其他应用一样,您可以随时通过无线方式更新打印服务。

客户端应用可以使用新的 API 向其应用添加打印功能,并且只需极少的代码更改。在大多数情况下,您可以向操作栏添加打印操作以及用于选择要打印的项目的界面。您还可以实现 API 来创建打印任务、在打印管理器查询打印管理器的状态和取消任务。这样,您就可以输出几乎任何类型的内容,包括本地图片和文档、网络数据或渲染到画布的视图。

为实现最广泛的兼容性,Android 使用 PDF 作为其主要打印文件格式。在打印之前,您的应用需要生成正确分页的 PDF 版本内容。为方便起见,Printing API 提供了原生和 WebView 辅助程序类,可让您使用标准 Android 绘图 API 创建 PDF 文件。如果您的应用知道如何绘制内容,则可以快速创建 PDF 文件进行打印。

大多数搭载 Android 4.4 的设备都会预安装 Google 云打印作为打印服务,以及一些支持打印的 Google 应用,包括 Chrome、云端硬盘、图库和 QuickOffice 等。

存储访问框架

新的存储访问框架可让用户轻松浏览和打开其所有首选文档存储提供程序中的文档、图片及其他文件。通过易用的标准界面,用户可以在各种应用和提供程序中以一致的方式浏览文件和访问最近用过的文件。

移动设备:展示新存储访问框架内的已打开边栏 在移动设备上展示新存储访问框架中集成的 Box 服务

Box 及其他方已将其服务集成到存储访问框架中,让用户能够通过系统中的应用轻松访问其文档。

云存储服务或本地存储服务可以通过实现封装其服务的新文档提供程序类来参与此生态系统。提供程序类包含向系统注册提供程序以及管理在提供程序中的浏览、读取和写入文档所需的所有 API。文档提供程序可以让用户能够访问可以用文件表示的任何远程或本地数据 - 从文本、照片、壁纸到视频和音频等。

如果您为云端或本地服务构建文档提供程序,可以将它作为现有 Android 应用的一部分提供给用户。下载并安装该应用后,用户就可以通过任何参与框架的应用即时访问您的服务。这有助于提高曝光率和用户互动度,因为用户更容易找到您的服务。

如果您开发用于管理文件或文档的客户端应用,只需使用新的 CREATE_DOCUMENTOPEN_DOCUMENT intent 打开或创建文件即可与存储访问框架集成,系统会自动显示用于浏览文档的标准界面,包括所有可用的文档提供程序。

您可以为所有提供程序一次性集成客户端应用,而无需任何供应商专用代码。用户添加或移除提供方后,可以继续通过您的应用访问他们首选的服务,无需对代码进行更改或更新。

存储访问框架集成了现有的 GET_CONTENT intent,因此用户还可以从新的系统界面中访问他们之前的所有内容和数据源,以进行浏览。应用可以继续使用 GET_CONTENT 作为允许用户导入数据的方式。借助存储访问框架和用于浏览的系统界面,用户可以更轻松地从更广泛的来源查找和导入数据。

大多数搭载 Android 4.4 的设备都将配备预先集成为文档提供程序的 Google 云端硬盘和本地存储空间,处理文件的 Google 应用也使用新框架。

低功耗传感器

传感器批处理

Android 4.4 引入了对硬件传感器批处理的平台支持,这是一项新的优化功能,可以显著降低传感器持续活动所消耗的电量。

借助传感器批处理功能,Android 可与设备硬件协作,批量高效地收集和传递传感器事件,而不是在检测到传感器事件时逐一收集和传递。这样,设备的应用处理器就可以一直保持低功耗空闲状态,直到批量交付。您可以使用标准事件监听器从任何传感器请求批处理事件,还可以控制接收批处理事件的时间间隔。您还可以请求在批处理周期之间立即传送事件。

传感器批处理非常适合低功耗、长时间运行的用例,例如健身、位置跟踪、监控等。它可以提高应用的效率,让您可以连续跟踪传感器事件,即使屏幕关闭且系统处于休眠状态也是如此。

传感器批处理功能目前可在 Nexus 5 上使用,我们正在与芯片组合作伙伴合作,以尽快将其推广至更多设备。

展示新的步测器支持的移动设备 展示新的计步器支持的移动设备

MovesRuntastic Pedometer 使用硬件步测器提供长时间运行的低功耗服务。

步测器和计步器

Android 4.4 还增加了对两种新的复合传感器(步测器和计步器)的平台支持,使您的应用能够在用户行走、跑步或爬楼梯时跟踪步数。这些新传感器在硬件中实现,以降低功耗。

步测器分析加速度计输入,识别用户何时迈出一步,然后每一步都触发一个事件。计步器会跟踪自设备上次重新启动后的总步数,步数的每次变化都会触发一个事件。由于平台和底层硬件中内置了逻辑和传感器管理,因此您无需在应用中维护自己的检测算法。

步测器和计步器传感器目前在 Nexus 5 上可用,我们正在与芯片组合作伙伴合作,以尽快将其推广到新设备。

短信提供程序

如果您开发使用短信或彩信的即时通讯应用,现在可以使用共享短信提供程序和新的 API 来管理应用的消息存储和检索。新的短信提供程序和 API 为所有处理短信或彩信的应用定义了标准化交互模型。

除了新的提供程序和 API 之外,Android 4.4 还引入了用于接收消息和向提供程序写入内容的新语义。收到消息后,系统会使用新的 SMS_DELIVER intent 直接将消息路由到用户的默认即时通讯应用。其他应用仍然可以使用 SMS_RECEIVED intent 监听传入的消息。此外,系统现在仅允许默认应用将消息数据写入提供程序,但其他应用可以随时读取数据。不是用户默认应用的应用仍然可以发送消息 - 系统代表应用负责将这些消息写入提供程序,以便用户在默认应用中看到这些消息。

新的提供程序和语义有助于改善安装多个即时通讯应用时的用户体验,并帮助您使用完全支持且向前兼容的 API 构建新的消息传递功能。

开发漂亮应用的新方式

显示新的沉浸模式功能的移动设备

新的沉浸模式让应用可以利用屏幕上的每个像素来显示内容和捕获触摸事件。

全屏沉浸模式

现在,您的应用可以使用设备屏幕上的每个像素来展示您的内容并捕获触摸事件。Android 4.4 新增了一种全屏沉浸模式,让您能够在手机和平板电脑上创建从一个边缘延伸到另一个边缘的全出血界面,并隐藏所有系统界面,例如状态栏和导航栏。非常适合丰富的视觉内容,例如照片、视频、地图、图书、游戏。

在新模式下,系统界面会保持隐藏状态,即使在用户与您的应用或游戏互动时也是如此 - 您可以从屏幕上的任意位置(甚至是系统栏会占据的区域)捕获触摸事件。这是在应用或游戏中创建更大、更丰富、沉浸感更强的界面,同时减少视觉干扰的绝佳方法。

为确保用户始终可以从全屏沉浸模式轻松、一致地访问系统界面,Android 4.4 支持一种新的手势 - 在沉浸模式下,现在从屏幕顶部或底部边缘滑动可以显示系统界面。

如需返回沉浸模式,用户可以轻触栏边界之外的屏幕,或等待一小段时间,让栏自动隐藏。为了提供一致的用户体验,新手势还可以与之前用于隐藏状态栏的方法搭配使用。

用于动画场景的转场框架

大多数应用都会围绕若干显示不同操作的关键界面状态来构建其流程。许多应用还使用动画来帮助用户通过这些状态和每种状态下可用的操作了解应用进度。为了更轻松地在应用中创建高品质动画Android 4.4 引入了一个新的过渡框架。

借助过渡框架,您可以定义场景(通常是视图层次结构)和过渡,从而描述如何在用户进入或退出场景时为场景添加动画或转换场景。您可以使用多种预定义的过渡类型,根据特定属性(例如布局边界或可见性)为场景添加动画效果。还有一种自动过渡类型,可以在场景转换过程中自动淡出、移动视图以及调整视图大小。此外,您还可以定义自定义过渡,以便为对您应用最重要的属性添加动画效果,并且可以根据需要插入自己的动画样式。

借助过渡框架,您还可以即时为界面变化添加动画效果,而无需定义场景。例如,您可以对视图层次结构进行一系列更改,然后让 TransitionManager 针对这些更改自动运行延迟过渡。

设置转换后,即可直接从应用调用转换。例如,您可以调用一个方法开始转换,在视图层次结构中进行各种更改,下一帧动画会自动开始播放,为您指定的更改添加动画效果。

透明系统 UI

应用可以使用新的窗口样式来请求半透明系统栏。

如需自定义控制在应用流程中特定场景之间运行的过渡,您可以使用 TransitionManager。借助 TransitionManager,您可以定义场景与针对特定场景变化运行的转场之间的关系。

透明系统 UI 样式

为了充分利用您的内容,您现在可以使用新的窗口样式和主题来请求半透明系统界面,包括状态栏和导航栏。为确保导航栏按钮或状态栏信息清晰易读,系统会在系统栏后面显示细微的渐变。典型用例是需要显示壁纸的应用。

增强的通知访问功能

通知监听器服务现在可以查看使用通知构建器 API 构建的传入通知的详细信息。监听器服务可以访问通知的操作以及新的 extra 字段(文本、图标、图片、进度、精密计时器和许多其他字段),以提取有关通知的更简洁的信息,并以不同的方式显示信息。

Chromium WebView 徽标

Chromium WebView

Android 4.4 包含基于 Chromium 的 WebView 的全新实现。新的 Chromium WebView 在标准支持、性能和兼容性方面为您提供最新的标准支持,帮助您构建和显示基于网络的内容。

Chromium WebView 为 HTML5、CSS3 和 JavaScript 提供广泛支持。它支持 Chrome(Android 版)30 中提供的大多数 HTML5 功能。它还推出了 JavaScript Engine (V8) 的更新版本,大幅提升 JavaScript 性能。

此外,新的 Chromium WebView 支持使用 Chrome 开发者工具进行远程调试。例如,您可以使用开发机器上的 Chrome 开发者工具来检查、调试和分析移动设备上实时的 WebView 内容。

所有搭载 Android 4.4 及更高版本的兼容设备都包括新的 Chromium WebView。您可以立即使用新的 WebView,只需对现有应用和内容进行极少的修改。在大多数情况下,您的内容将无缝迁移到新实现。

新的媒体功能

屏幕录制

现在,您可以直接在 Android 设备上轻松为应用制作高品质视频。Android 4.4 新增了对屏幕录制的支持,并提供了一个屏幕录制实用程序,可让您在通过 USB 连接到 Android SDK 环境的设备上开始和停止录制。这是一种为应用、测试材料、营销视频等创建演示和教程的绝佳新方式。

借助屏幕录制实用程序,您可以拍摄设备屏幕内容的视频,并以 MP4 文件的形式在设备上存储视频。您可以按所需的任何设备支持的分辨率和比特率进行录制,输出将保留显示屏的宽高比。默认情况下,该实用程序选择等于或接近设备当前屏幕方向的显示分辨率的分辨率。 完成录制后,您可以直接在设备上分享视频,也可以将 MP4 文件拉取到主机进行后期制作。

如果您的应用播放的视频或其他受保护的内容是您不想被屏幕录制器捕获的,您可以使用 SurfaceView.setSecure() 将内容标记为安全。

您可以通过 Android SDK 中包含的 adb 工具使用 adb shell screenrecord 命令访问屏幕录制功能。您也可以通过 Android Studio 中的 logcat 启动它。

通过自适应播放切换分辨率

Android 4.4 向 Android 媒体框架提供了对自适应播放的正式支持。自适应播放是 MPEG-DASH 和其他格式视频解码器的一项可选功能,可实现在播放过程中无缝更改分辨率。客户端可以开始向解码器输入视频帧馈送新分辨率的帧,输出缓冲区的分辨率会自动更改,而不会出现明显的间隙。

借助 Android 4.4 中的分辨率切换功能,媒体应用能够提供更好的流式视频体验。应用可以在运行时使用现有 API 检查是否支持自适应播放,并使用 Android 4.4 中引入的新 API 来实现分辨率切换。

DASH 通用加密

Android 现在支持 MPEG-DASH 通用加密 (CENC),提供用于管理保护内容的标准多平台 DRM 方案。应用可以通过 Android 的模块化 DRM 框架和平台 API 来利用 CENC,以支持 DASH。

HTTP 直播流式传输

Android 4.4 将该平台的 HTTP Live Streaming (HLS) 支持更新为 HLS 规范第 7 版(该协议第 4 版)的超集。如需了解详情,请参阅 IETF 草稿

DSP 音频隧道

为了实现高性能、低功耗音频播放,Android 4.4 增加了对设备芯片组中的数字信号处理器 (DSP) 的音频隧道的平台支持。借助隧道技术,音频解码和输出音效将分流到 DSP,从而减少唤醒应用处理器的频率并降低耗电量。

音频隧道技术可以大幅延长电池续航时间,在某些情况下(例如在屏幕关闭的情况下使用耳机听音乐)。例如,借助音频隧道技术,Nexus 5 可在离线状态下的总音频播放时间长达 60 小时,比非隧道式音频多出 50% 以上。

媒体应用无需修改代码,即可利用受支持的设备上的音频隧道。只要音频在设备上可用,系统就会应用隧道技术来优化音频播放。

可视化工具显示音量增强器音效

LoudnessEnhancer 效果的可视化可以使语音内容听得更清楚。

音频隧道需要设备硬件支持。目前,音频隧道技术可在 Nexus 5 上使用,我们正在与芯片组合作伙伴合作,以尽快将其提供给更多设备。

音频监控

应用可以在 Visualizer 效果中使用新的监控工具,获取有关设备上当前正在播放的任何音频的峰值和 RMS 水平的更新。例如,您可以在音乐可视化工具中以创造性的方式使用这种方法,或者在媒体播放器中实现播放计量。

音量增强器

媒体播放应用可以使用新的 LoudnessEnhancer 效果来提高语音内容的音量。LoudnessEnhancer 效果起到压缩器的作用,其时间常数专门针对语音进行调优。

用于改善 AV 同步的音频时间戳

音频框架现在可以将来自音频输出 HAL 的呈现时间戳报告给应用,以更好地同步音频和视频。通过音频时间戳,您的应用可以确定特定音频帧何时(或已经)在设备外呈现给用户;您可以使用时间戳信息更准确地将音频与视频帧同步。

Wi-Fi CERTIFIED Miracast™

Android 4.4 设备现在可以根据 Wi-Fi 联盟 Wi-Fi 显示规范认证为与 Miracast 兼容。为了帮助测试,新的无线显示开发者选项提供了无线显示认证的高级配置控件和设置。您可以在设置 > 开发者选项 > 无线显示认证下访问该选项。Nexus 5 是经过 Miracast 认证的无线显示设备。

RenderScript Compute

RenderScript 优化图表

在相同设备(Nexus 7、Nexus 10)上运行时,Android 4.4 相对于 Android 4.3 的性能基准。

持续性能改进

当应用使用 RenderScript 时,它们将受益于 RenderScript 运行时本身中持续的性能调整,而无需重新编译。右图显示了 Android 4.4 在两种常用芯片组上的性能提升。

GPU 加速

任何在受支持的设备上使用 RenderScript 的应用都可以从 GPU 加速中受益,而无需更改代码或重新编译。自 Nexus 10 首次推出 RenderScript GPU 加速功能以来,各种其他硬件合作伙伴增加了支持。

现在,搭载 Android 4.4 的 Nexus 5、Nexus 4、Nexus 7 (2013) 和 Nexus 10 均支持 GPU 加速功能,我们正与合作伙伴合作,尽快将其推广至更多设备。

Android NDK 中的 RenderScript

现在,您可以直接从原生代码利用 RenderScript。借助 Android 原生开发套件 (NDK) 中新增了一个 C++ API,您可以使用与通过框架 API 提供的相同 RenderScript 功能,包括脚本内建函数、自定义内核等。

如果您要在原生代码中处理性能密集型大型任务,可以使用 RenderScript 执行这些任务,并将其与原生代码相集成。RenderScript 在各种设备上都具有出色的性能,并自动支持多核 CPU、GPU 和其他处理器。

当您通过 NDK 构建使用 RenderScript 的应用时,可以将其分发到任何搭载 Android 2.2 或更高版本的设备,就像使用适用于框架 API 的 RenderScript 支持库一样。

显卡

GLES2.0 SurfaceFlinger

Android 4.4 将其 SurfaceFlinger 从 OpenGL ES 1.0 升级到 OpenGL ES 2.0。

新的硬件合成器支持虚拟显示

除了主显示设备外(如 HDMI)显示设备,最新版本的 Android 硬件混合渲染器 HWComposer 1.3 还支持一个虚拟屏幕的硬件合成,并改进了 OpenGL ES 互操作性。

新的连接类型

新的蓝牙配置文件

Android 4.4 支持两个新的蓝牙配置文件,使应用支持更广泛的低功耗和媒体交互。Bluetooth HID over GATT (HOGP) 可让应用与低功耗外围设备(例如鼠标、操纵杆和键盘)建立低延迟链接。Bluetooth MAP 可让您的应用与附近的设备(例如可免触摸使用的汽车终端或其他移动设备)交换消息。作为对蓝牙 AVRCP 1.3 的扩展,用户现在可以通过蓝牙设备设置系统的绝对音量。

在 Android 4.2 中,Google 推出的 Bluedroid 蓝牙堆栈和 Broadcom 是对 HOGP、MAP 和 AVRCP 的平台支持构建的。直接支持 Nexus 设备及其他提供兼容蓝牙功能的 Android 兼容设备。

红外发射器

Android 4.4 引入了对内置红外线增强器的平台支持,以及一项新的 API 和系统服务,让您能够创建使用它们的应用。

利用这一新的 API,您可以构建可让用户远程控制附近的电视、调谐器、开关和其他电子设备的应用。该 API 可让您的应用检查手机或平板电脑是否具有红外发射器,查询其运营商频率,然后发送红外信号。

由于该 API 是适用于搭载 Android 4.4 或更高版本的 Android 设备的标准,因此您的应用无需编写自定义集成代码即可支持尽可能多的供应商。

Wi-Fi TDLS 支持

Android 4.4 引入了一种无缝的方法,通过支持 Wi-Fi 通道直接链路设置 (TDLS),在已经连接到同一 Wi-Fi 网络的设备之间更快地流式传输媒体和其他数据。

无障碍功能

系统范围内的隐藏式字幕设置

Android 4.4 现在支持更好的跨应用无障碍体验,方法是添加系统级字幕偏好设置。用户可以依次前往设置 > 无障碍 > 字幕,以设置全局字幕偏好设置,例如是否显示字幕以及要使用的语言、文字大小和文本样式。

使用视频的应用现在可以访问用户的字幕设置,并调整呈现方式以满足用户的偏好。新的字幕管理器 API 可让您检查和监控用户的字幕偏好设置。字幕管理器可为您提供用户的首选字幕状态以及首选语言区域、缩放比例和文本样式。文本样式包括前景色和背景颜色、边缘属性和字体。

移动设备在横向模式下在系统级字幕偏好设置中显示字幕

应用现在可以参考用户的系统级字幕偏好设置。设置右侧显示了预期显示样式的示例。

此外,使用 VideoView 的应用可以使用新的 API 来传递字幕流和视频流进行渲染。系统会根据用户的系统级设置自动处理视频帧上的字幕显示。目前,VideoView 仅支持自动显示 WebVTT 格式的字幕。

所有显示字幕的应用应确保检查用户的系统级字幕偏好设置,并呈现尽可能符合这些偏好设置的字幕。如需进一步了解特定设置组合的外观,您可以直接在“设置”应用中查看不同语言、大小和样式的字幕预览。

增强的无障碍功能 API

Android 4.4 扩展了无障碍功能 API,以支持更精确的结构和语义描述以及观察屏幕上的元素。借助这些新 API,开发者可以为无障碍服务提供有关屏幕元素的更多信息,从而提高无障碍反馈的质量。

在无障碍功能节点中,开发者现在可以确定节点是否为弹出式窗口、获取其输入类型等。您还可以使用新的 API 来处理包含网格类信息(例如列表和表格)的节点。例如,您现在可以指定新的受支持操作、收集信息、实时区域模式等。

借助新的无障碍事件,开发者能够更密切地关注窗口内容发生的变化,并且现在可以监听设备上的触摸浏览模式变化。

支持全球用户

RTL 语言区域的可绘制对象镜像

如果您的应用以使用 RTL 脚本的用户为目标,您可以使用新的 API 在用户的语言区域设置包含 RTL 语言时声明可绘制对象应自动镜像

将可绘制对象声明为自动镜像有助于防止应用中的资源重复,并缩减 APK 的大小。如果您有可重复用于 LTR 和 RTL 呈现的可绘制对象,您可以将默认版本声明为自动镜像,然后从 RTL 资源中省略这些可绘制对象。

通过 Force RTL layout 选项,可更轻松地测试应用本地化。

您可以在应用代码中将各种类型的可绘制对象声明为自动镜像,例如位图、九宫格图像、图层、状态列表和其他可绘制对象。您还可以使用新属性,在资源文件中将可绘制对象声明为自动镜像。

强制使用从右到左的布局

为了在不切换到 RTL 语言的情况下更轻松地测试和调试布局镜像问题,Android 包含一个新的开发者选项,用于强制在所有应用中强制采用 RTL 布局方向。

“Force RTL layout”选项会将所有语言区域的设备切换到 RTL 布局,并以当前语言显示文本。这有助于您发现整个应用的布局问题,而无需以 RTL 语言显示应用。您可以在设置 > 开发者选项 > 强制使用从右到左的布局方向来访问该选项。

安全增强功能

SELinux(强制模式)

Android 4.4 将其 SELinux 配置从“宽容”更新为“强制”。这意味着,在具有强制实施政策的 SELinux 域内,潜在的政策违规行为将被屏蔽。

改进加密算法

Android 增加了对另外两种加密算法的支持,进一步提高了安全性。向密钥库提供程序添加了对椭圆曲线数字签名算法 (ECDSA) 的支持,以提高数字签名的安全性,适用于为应用签名或数据连接等场景。实现 Scrypt 密钥派生函数可以保护用于全盘加密的加密密钥。

其他增强功能

在多用户设备上,现在按用户应用 VPN。这样,用户就可以通过 VPN 路由所有网络流量,而不会影响设备上的其他用户。此外,Android 现在支持 FORTIFY_SOURCE 级别 2,并且所有代码在编译时都会受到这些保护。FORTIFY_SOURCE 已得到增强,能够与 Clang 配合使用。

内存使用率分析工具

Procstats

一个名为 procstats 的新工具可帮助您分析应用使用的内存资源,以及系统中运行的其他应用和服务所用的资源。

Procstats 跟踪应用在一段时间内的运行情况,提供有关应用执行时长和内存使用情况的数据,帮助确定应用的执行效率。这对于启动在后台运行的服务的应用最为重要,因为它可以让您监控它们的运行时长以及这样做时所占用的 RAM 大小。Procstats 还将收集前台应用在一段时间内的内存用量数据,以确定应用的整体内存配置文件。

Procstats 可以帮助您识别应用启动的后台服务。您可以跟踪这些服务持续运行的时长以及它们在运行时所占用的 RAM 大小。Procstats 还允许您在应用在前台运行时分析其性能,根据应用在一段时间内的内存使用情况来确定其总体内存使用情况。

利用新的 procstats 工具,您可以检查应用和服务在一段时间内的内存使用率。

通过增强的 meminfo 工具,您可以查看应用的内存用量详情。

您可以通过 Android SDK 中包含的 adb 工具 adb shell dumpsys procstats 访问 procstats。此外,对于设备端性能分析,请参阅下面的“Process Stats”开发者选项。

设备内存状态和分析

Android 4.4 包含一个新的开发者选项,可让您更轻松地分析在任何设备或模拟器上运行时的应用内存配置文件。了解您的应用如何使用内存以及在低 RAM 设备上的性能尤为有用。您可以在设置 > 开发者选项 > 进程统计信息下访问该选项。

移动设备上展示新的 Process Stats 选项 移动设备在新的 Process Stats 选项中展示使用详情

进程统计信息是检查应用内存使用情况的便捷方式。您可以查看您的应用与其他应用的对比情况,并放大有关您的应用或其后台服务的特定数据。

Process Stats 选项根据使用新的 procstats 服务收集的数据,显示有关应用内存使用情况的各种概要指标。在主屏幕上,您可以查看系统内存状态的摘要。绿色表示相对较低的 RAM 使用率,黄色表示中等 RAM 使用率,红色表示高(临界)RAM 使用率

摘要下方是一个列表,总结了每个应用的系统内存负载。对于每个应用,蓝条表示其进程的相对计算内存负载(运行时间 x avg_pss),百分比数字表示在后台使用的相对时间量。您可以过滤列表以仅显示前台、后台或缓存的进程,还可以包含或排除系统进程。您还可以将数据收集的时长更改为 3 小时、6 小时、12 小时或 24 小时,并且可以包含或排除 uss 内存。

如需单独深入了解特定应用的内存用量,请点按该应用。现在,您可以查看每个应用所占用的内存的摘要,以及该应用已运行的收集间隔所占的百分比。您还可以在收集期内、应用的服务下方看到平均用量和最大用量,以及它们已运行的时间百分比。

使用进程统计信息中的数据分析应用,可以发现问题并提出可能的优化应用建议。例如,如果应用运行时间超出预期,或在一段时间内使用的内存过多,您可以解决代码中的错误,以提升应用性能,尤其是在低 RAM 设备上运行时。