
欢迎使用 Android 4.4 KitKat!
Android KitKat 将 Android 最具创新性、最美观、最实用的功能带到更多设备上。
本文将为您简要介绍开发者有哪些新内容。
访问 www.android.com 了解更多面向消费者的 KitKat 信息。
让 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 14443-4 (ISO-DEP) 协议进行传输的基于 ISO/IEC 7816 的智能卡。这些卡目前被许多系统使用,包括现有的 EMVCO NFC 支付基础设施。Android 使用 ISO/IEC 7816-4 中定义的应用程序标识符 (AID) 作为将交易路由到正确 Android 应用程序的基础。
应用在其清单文件中声明其支持的 AID,以及指示可用支持类型(例如,“支付”)的类别标识符。如果多个应用在同一类别中支持相同的 AID,Android 会显示一个对话框,让用户选择要使用的应用。
当用户轻触支付终端进行支付时,系统会提取首选 AID 并将交易路由到正确的应用程序。应用程序读取交易数据并可以使用任何本地或基于网络的服务来验证并完成交易。
Android HCE 需要设备中存在 NFC 控制器。HCE 支持已在大多数 NFC 控制器上广泛可用,这些控制器提供对 HCE 和 SE 交易的动态支持。Android 4.4 支持 NFC 的设备将包括“轻触即付”,以便使用 HCE 进行便捷支付。
打印框架
Android 应用现在可以通过 Wi-Fi 或云托管服务(如 Google 云打印)打印任何类型的内容。在启用打印的应用中,用户可以发现可用的打印机,更改纸张大小,选择要打印的特定页面,并打印几乎任何类型的文档、图像或文件。
Android 4.4 引入了对打印的原生平台支持,以及用于管理打印和添加新类型打印机支持的 API。该平台提供了一个打印管理器,用于协调请求打印的应用和处理打印请求的已安装打印服务之间的数据。打印管理器提供共享服务和系统 UI 用于打印,让用户可以一致地控制从任何应用进行打印。打印管理器还确保内容在进程之间(从应用到打印服务)传输时的安全性。

您可以为您的应用添加打印支持,或开发打印服务以支持特定类型的打印机。
打印机制造商可以使用新的 API 开发自己的打印服务——可插拔组件,用于添加供应商特定的逻辑和服务,以与特定类型的打印机通信。他们可以构建打印服务并通过 Google Play 分发,使用户可以轻松地在设备上查找和安装它们。与其他应用一样,您可以随时通过无线方式更新打印服务。
客户端应用可以使用新的 API,通过最少的代码更改为其应用添加打印功能。在大多数情况下,您会在 Action Bar 中添加打印操作,并添加用于选择要打印的项目 UI。您还需要实现 API 来创建打印作业、查询打印管理器以获取状态以及取消作业。这使您可以打印几乎任何类型的内容,从本地图像和文档到网络数据或渲染到画布的视图。
为了实现最广泛的兼容性,Android 使用 PDF 作为其主要的打印文件格式。在打印之前,您的应用需要生成内容的分页正确的 PDF 版本。为方便起见,打印 API 提供了原生和 WebView 辅助类,让您可以使用标准 Android 绘图 API 创建 PDF。如果您的应用知道如何绘制内容,它可以快速创建用于打印的 PDF。
大多数运行 Android 4.4 的设备将预装 Google 云打印作为打印服务,并且一些支持打印的 Google 应用,包括 Chrome、Drive、Gallery 和 QuickOffice,也将支持打印。
存储访问框架
新的存储访问框架使用户可以轻松地浏览和打开其所有首选文档存储提供商中的文档、图像和其他文件。标准、易于使用的 UI 允许用户以一致的方式在应用和提供商之间浏览文件并访问最近的文件。


Box 和其他公司已将其服务集成到存储访问框架中,让用户可以从系统中的应用轻松访问其文档。
云或本地存储服务可以通过实现一个新的文档提供程序类来参与这个生态系统,该类封装了它们的服务。提供程序类包括注册提供程序到系统以及管理提供程序中文档的浏览、读取和写入所需的所有 API。文档提供程序可以为用户提供对可以表示为文件的任何远程或本地数据的访问权限——从文本、照片、壁纸到视频、音频等等。
如果您为云或本地服务构建文档提供程序,您可以将其作为现有 Android 应用的一部分交付给用户。下载并安装应用后,用户将可以从参与该框架的任何应用立即访问您的服务。这可以帮助您获得曝光度和用户参与度,因为用户将更容易找到您的服务。
如果您开发管理文件或文档的客户端应用,您只需使用新的 CREATE_DOCUMENT 或 OPEN_DOCUMENT intent 来打开或创建文件,即可与存储访问框架集成 — 系统会自动显示用于浏览文档的标准 UI,包括所有可用的文档提供程序。
您可以一次性为所有提供程序集成您的客户端应用,而无需任何特定于供应商的代码。随着用户添加或移除提供程序,他们将继续可以从您的应用访问其首选服务,而无需更改或更新您的代码。
存储访问框架与现有的 GET_CONTENT intent 集成,因此用户也可以从新的系统 UI 中访问其所有以前的内容和数据源。应用可以继续使用 GET_CONTENT 作为允许用户导入数据的方式。存储访问框架和系统 UI 便于用户从更广泛的来源查找和导入数据。
大多数运行 Android 4.4 的设备将预集成 Google Drive 和本地存储作为文档提供程序,并且处理文件的 Google 应用也将使用新的框架。
低功耗传感器
传感器批处理
Android 4.4 引入了对硬件传感器批处理的平台支持,这是一种新的优化,可以显著降低持续传感器活动所消耗的功耗。
通过传感器批处理,Android 与设备硬件协同工作,以批次形式高效地收集和交付传感器事件,而不是在检测到时单独交付。这使得设备的应用程序处理器可以保持在低功耗空闲状态,直到批次交付。您可以使用标准事件监听器从任何传感器请求批处理事件,并且可以控制接收批次的间隔。您还可以请求在批处理周期之间立即交付事件。
传感器批处理非常适合低功耗、长时间运行的用例,例如健身、位置跟踪、监控等。它可以使您的应用更高效,并允许您持续跟踪传感器事件——即使屏幕关闭且系统处于休眠状态。
传感器批处理目前可在 Nexus 5 上使用,我们正在与芯片合作伙伴合作,尽快将其引入更多设备。


Moves 和 Runtastic Pedometer 正在使用硬件步进检测器来提供长时间运行、低功耗的服务。
步进检测器和步数计数器
Android 4.4 还增加了对两种新型复合传感器——步进检测器和步数计数器——的平台支持,让您的应用可以在用户步行、跑步或爬楼梯时跟踪步数。这些新传感器在硬件中实现,以实现低功耗。
步进检测器分析加速计输入以识别用户何时迈步,然后针对每个步进触发事件。步数计数器跟踪自上次设备重启以来的总步数,并在步数每次变化时触发事件。由于逻辑和传感器管理内置在平台和底层硬件中,因此您无需在应用中维护自己的检测算法。
步进检测器和计数器传感器可在 Nexus 5 上使用,我们正在与芯片合作伙伴合作,尽快将其引入新设备。
短信提供程序
如果您开发使用短信或彩信的消息应用,您现在可以使用共享短信提供程序和新 API 来管理您应用的消息存储和检索。新的短信提供程序和 API 为所有处理短信或彩信消息的应用定义了标准化的交互模型。
除了新的提供程序和 API,Android 4.4 还引入了接收消息和写入提供程序的新语义。收到消息时,系统会使用新的 SMS_DELIVER intent 直接将其路由到用户的默认消息应用。其他应用仍然可以使用 SMS_RECEIVED intent 侦听传入消息。此外,系统现在只允许默认应用将消息数据写入提供程序,尽管其他应用可以随时读取。非用户默认的应用仍然可以发送消息——系统会代表应用处理这些消息的写入到提供程序,以便用户可以在默认应用中看到它们。
新的提供程序和语义有助于改善安装多个消息应用时的用户体验,并帮助您使用完全支持、向前兼容的 API 构建新的消息功能。
构建精美应用的新方式

新的沉浸模式让应用可以使用屏幕上的每个像素来显示内容并捕获触摸事件。
全屏沉浸模式
现在,您的应用可以使用设备屏幕上的每个像素来展示您的内容并捕获触摸事件。Android 4.4 添加了一种新的全屏沉浸模式,可让您在手机和平板电脑上创建从边缘到边缘的全屏 UI,隐藏所有系统 UI,例如状态栏和导航栏。它非常适合照片、视频、地图、书籍和游戏等丰富的视觉内容。
在新模式下,即使用户与您的应用或游戏互动时,系统 UI 也会保持隐藏状态——您可以从屏幕上的任何位置捕获触摸事件,甚至是原本会被系统栏占用的区域。这为您提供了一种很好的方式,可以在您的应用或游戏中创建更大、更丰富、更具沉浸感的 UI,并减少视觉干扰。
为确保用户始终可以从全屏沉浸模式轻松、一致地访问系统 UI,Android 4.4 支持新的手势——在沉浸模式下,从屏幕顶部或底部边缘滑动现在会显示系统 UI。
要返回沉浸模式,用户可以触摸栏边界外的屏幕,或者等待短时间让栏自动隐藏。为了提供一致的用户体验,新手势也适用于以前隐藏状态栏的方法。
用于场景动画的过渡框架
大多数应用将其流程围绕几个暴露不同操作的关键 UI 状态进行构建。许多应用还使用动画来帮助用户了解他们通过这些状态的进度以及每个状态中可用的操作。为了让您更轻松地在应用中创建高质量动画,Android 4.4 引入了一个新的过渡框架。
过渡框架可让您定义场景(通常是视图层次结构)和过渡,它们描述了当用户进入或退出场景时如何对场景进行动画或转换。您可以使用几种预定义的过渡类型,根据特定属性(例如布局边界或可见性)对场景进行动画处理。还有一种自动过渡类型,可在场景更改期间自动淡出、移动和调整视图大小。此外,您可以定义自定义过渡,对应用最重要的属性进行动画处理,并且可以根据需要插入自己的动画样式。
使用过渡框架,您还可以即时对 UI 更改进行动画处理,而无需定义场景。例如,您可以对视图层次结构进行一系列更改,然后让 TransitionManager 自动对这些更改运行延迟过渡。
设置过渡后,从您的应用中调用它们非常简单。例如,您可以调用一个方法来开始过渡,在您的视图层次结构中进行各种更改,然后在下一帧中,动画将自动开始对您指定的更改进行动画处理。

应用可以使用新的窗口样式来请求半透明系统栏。
为了对应用程序流程中特定场景之间运行的过渡进行自定义控制,您可以使用 TransitionManager。TransitionManager 允许您定义场景与针对特定场景更改运行的过渡之间的关系。
半透明系统 UI 样式
为了最大程度地发挥内容的影响力,您现在可以使用新的窗口样式和主题来请求半透明系统 UI,包括状态栏和导航栏。为了确保导航栏按钮或状态栏信息的可读性,系统栏后面会显示微妙的渐变。一个典型的用例是需要透视墙纸的应用。
增强的通知访问
通知监听服务现在可以看到使用通知构建器 API 构建的更多有关传入通知的信息。监听服务可以访问通知的操作以及新的额外字段——文本、图标、图片、进度、计时器等等——以提取更清晰的通知信息并以不同的方式呈现信息。
Chromium WebView
Android 4.4 包含一个基于 Chromium 的全新 WebView 实现。新的 Chromium WebView 为您提供最新的标准支持、性能和兼容性,以构建和显示基于 Web 的内容。
Chromium WebView 对 HTML5、CSS3 和 JavaScript 提供了广泛支持。它支持 Chrome for Android 30 中可用的大部分 HTML5 功能。它还带来了更新版本的 JavaScript 引擎 (V8),可显著提高 JavaScript 性能。
此外,新的 Chromium WebView 支持使用 Chrome DevTools 进行远程调试。例如,您可以在开发机器上使用 Chrome DevTools 来检查、调试和实时分析移动设备上的 WebView 内容。
新的 Chromium WebView 包含在所有运行 Android 4.4 及更高版本的兼容设备上。您可以立即利用新的 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 框架和支持 DASH 的平台 API 来利用 CENC。
HTTP Live Streaming
Android 4.4 将平台的 HTTP Live Streaming (HLS) 支持更新为 HLS 规范版本 7(协议版本 4)的超集。详情请参阅 IETF 草案。
音频隧道到 DSP
为了实现高性能、低功耗的音频播放,Android 4.4 增加了平台支持,将音频隧道传输到设备芯片组中的数字信号处理器 (DSP)。通过隧道传输,音频解码和输出效果卸载到 DSP,从而减少应用程序处理器唤醒的频率并减少电池使用。
音频隧道可以显著提高电池续航时间,适用于听音乐(例如戴耳机且屏幕关闭)等用例。例如,通过音频隧道,Nexus 5 可提供长达 60 小时的离线音频播放时间,比非隧道音频增加了 50% 以上。
媒体应用程序可以在支持的设备上利用音频隧道,而无需修改代码。系统会在设备可用时应用隧道以优化音频播放。

响度增强器效果如何使语音内容更清晰的视觉化演示。
音频隧道需要设备硬件支持。目前音频隧道可在 Nexus 5 上使用,我们正在与芯片合作伙伴合作,尽快将其引入更多设备。
音频监控
应用可以使用 Visualizer 效果中的新监控工具,获取设备上任何当前播放音频的峰值和 RMS 电平更新。例如,您可以在音乐可视化工具中创造性地使用此功能,或在媒体播放器中实现播放计量。
响度增强器
媒体播放应用可以通过使用新的 LoudnessEnhancer 效果来提高语音内容的响度,该效果作为压缩器,其时间常数专门针对语音进行了调优。
用于改善音视频同步的音频时间戳
音频框架现在可以将音频输出 HAL 的呈现时间戳报告给应用程序,以实现更好的音视频同步。音频时间戳可让您的应用程序确定特定音频帧何时将(或已)呈现给用户;您可以使用时间戳信息更准确地将音频与视频帧同步。
Wi-Fi CERTIFIED Miracast™
Android 4.4 设备现在可以获得 Wi-Fi Alliance Wi-Fi 显示规范的 Miracast 兼容认证。为帮助测试,一个新的无线显示开发者选项公开了无线显示认证的高级配置控件和设置。您可以在设置 > 开发者选项 > 无线显示认证中访问该选项。Nexus 5 是一款 Miracast 认证的无线显示设备。
RenderScript 计算

Android 4.4 相对于 Android 4.3 的性能基准,在相同设备(Nexus 7、Nexus 10)上运行。
持续的性能改进
当您的应用使用 RenderScript 时,它们将受益于 RenderScript 运行时本身的持续性能调优,而无需重新编译。右侧的图表显示了 Android 4.4 在两个流行芯片组上的性能提升。
GPU 加速
在支持的设备上使用 RenderScript 的任何应用都可以受益于 GPU 加速,而无需更改代码或重新编译。自从 Nexus 10 首次推出 RenderScript GPU 加速以来,其他各种硬件合作伙伴也增加了支持。
现在,借助 Android 4.4,GPU 加速在 Nexus 5 以及 Nexus 4、Nexus 7 (2013) 和 Nexus 10 上可用,我们正在与合作伙伴合作,尽快将其引入更多设备。
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。
虚拟显示器的新硬件合成器支持
最新版本的 Android 硬件合成器 HWComposer 1.3 支持除了主显示器、外部显示器(例如 HDMI)之外的一个虚拟显示器的硬件合成,并改进了 OpenGL ES 互操作性。
新型连接
新的蓝牙配置文件
Android 4.4 支持两个新的蓝牙配置文件,让应用能够支持更广泛的低功耗和媒体交互。通过 GATT 的蓝牙 HID (HOGP) 为应用提供了与低功耗外围设备(如鼠标、操纵杆和键盘)的低延迟连接。蓝牙 MAP 让您的应用可以与附近的设备交换消息,例如用于免提使用的车载终端或另一台移动设备。作为 Bluetooth AVRCP 1.3 的扩展,用户现在可以通过其蓝牙设备在系统上设置绝对音量。
对 HOGP、MAP 和 AVRCP 的平台支持基于 Google 和 Broadcom 在 Android 4.2 中引入的 Bluedroid 蓝牙堆栈。支持功能已在 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 资源中省略。

强制 RTL 布局选项使测试应用的本地化变得更容易。
您可以在应用程序代码中声明各种类型的可绘制对象为自动镜像,例如位图、九宫格、图层、状态列表和其他可绘制对象。您还可以使用新属性在资源文件中声明可绘制对象为自动镜像。
强制 RTL 布局
为了更容易测试和调试布局镜像问题而无需切换到 RTL 语言,Android 包含了一个新的开发者选项,可以在所有应用中强制使用 RTL 布局方向。
“强制 RTL 布局”选项会将设备切换到所有区域设置的 RTL 布局,并以您当前的语言显示文本。这可以帮助您在应用中查找布局问题,而无需以 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 工具访问 procstats,使用命令 adb shell dumpsys procstats。此外,对于设备上性能分析,请参阅下面的“进程统计信息”开发者选项。
设备上的内存状态和性能分析
Android 4.4 包含一个新的开发者选项,可以更轻松地分析应用在任何设备或模拟器上运行时的内存配置文件。这对于了解应用如何使用内存以及在低 RAM 设备上运行时性能如何尤其有用。您可以在设置 > 开发者选项 > 进程统计信息中访问该选项。


进程统计信息是检查应用内存使用情况的便捷方式。您可以查看您的应用与其他应用的比较情况,并深入了解有关您的应用或其后台服务的特定数据。
“进程统计信息”选项根据使用新的 procstats 服务收集的数据,向您显示有关应用内存使用情况的各种高级指标。在主屏幕上,您可以看到系统内存状态摘要。绿色表示低 RAM 使用量的相对时间,黄色表示中等 RAM 使用量,红色表示高(关键)RAM 使用量
摘要下方是一个列表,汇总了每个应用对系统的内存负载。对于每个应用,蓝色条表示其进程的相对计算内存负载(运行时 x avg_pss),百分比数字表示在后台花费的相对时间。您可以过滤列表以仅显示前台、后台或缓存进程,并且可以包含或排除系统进程。您还可以将收集数据的持续时间更改为 3、6、12 或 24 小时,并且可以包含或排除 uss 内存。
要更仔细地单独查看特定应用的内存使用情况,请轻触该应用。对于每个应用,您现在可以看到消耗的内存摘要以及应用运行的收集间隔的百分比。您还可以查看收集期间的平均和最大使用量,以及应用服务和它们运行时间的百分比。
使用“进程统计信息”中的数据分析您的应用可以发现问题并为您的应用提出可能的优化建议。例如,如果您的应用运行时间超过应有时间或在一段时间内使用过多内存,则您的代码中可能存在可以解决的错误,以提高您应用的性能,尤其是在低 RAM 设备上运行时。