[Android各版本特性]Android 5.0 Android Lollipop

1.Material Design

  1. Android 5.0 为 Android 引入了 Material Design,并为您提供了扩充的 UI 工具包,更便于您在应用中集成新的设计模式。
  2. 内置的 Activity 转换可让用户在赏心悦目的动画中无缝完成状态转换。
  3. 为您的应用中的按钮、复选框以及其他触摸控件提供了波纹动画。
  4. 新增了一种名为渲染线程的系统管理处理线程,即使是在主 UI 线程出现延迟的情况下,仍可保持动画的流畅。

2.以性能为中心

Android 在新的 ART 运行时上独占运行,这个全新开发的运行时支持混合使用预先编译 (AOT) 代码、即时编译 (JIT) 代码和解释代码。它支持 ARM、x86 和 MIPS 架构,并全面兼容 64 位。

ART 可改善应用性能和响应速度。高效的垃圾收集可减少 GC 事件的暂停次数和持续时间,让事件能够充分适应垂直同步窗口,以避免您的应用发生跳帧。ART 还能通过动态转移内存来优化前台使用的性能。

在 Android 5.0 中,ART 运行时取代 Dalvik 成为平台默认设置。Android 4.4 中已引入处于实验阶段的 ART 运行时。

有关 ART 的部分主要新功能包括:

  • 预先 (AOT) 编译
  • 改进的垃圾回收 (GC)
  • 改进的调试支持

大多数 Android 应用无需任何更改就可以在 ART 下工作。不过,部分适合 Dalvik 的技术并不适用于 ART。如存在以下情况,应特别注意:

  • 您的应用使用 Java 原生接口 (JNI) 运行 C/C++ 代码。
  • 您使用生成非标准代码的开发工具(例如,一些代码混淆工具)。
  • 您使用与压缩垃圾回收不兼容的技术。

3.通知

Android 5.0 中的通知更醒目、更便于访问并且可配置程度更高。

  1. 只要用户愿意,可在锁定屏幕上显示各种通知详情。用户可以选择在安全的锁定屏幕上显示部分、全部或者不显示任何通知内容。
  2. 来电等主要通知提醒出现在抬头通知中 — 这个小浮动窗口让用户不必离开当前应用便能响应或拒绝通知。
  3. 您现在可以为通知添加新的元数据,以收集相关联系人(用于排序)、类别和优先级。
  4. 新增的媒体通知模板通过多达 6 个操作按钮提供一致的通知媒体控制,包括“点赞”等自定义控制—不再需要 RemoteViews 了!

4.高级连接

  1. Android 5.0 新增了允许应用利用蓝牙低能耗 (BLE) 执行并发操作的 API,可同时实现扫描(中心模式)和广播(外设模式)。
  2. 新增的多网络功能允许应用查询可用网络提供的功能,例如它们是 WLAN 网络、蜂窝网络还是按流量计费网络,或者它们是否提供特定网络功能。然后应用可以请求连接并对连接丢失或其他网络变化作出响应。
  3. NFC API 现在允许应用动态注册 NFC 应用 ID (AID)。它们还可以设置每个活动服务的首选卡模拟服务,并创建包含 UTF-8 文本数据的 NDEF 记录。

5.高性能图形

对 Khronos OpenGL ES 3.1 的支持现在可在受支持设备上为游戏和其他应用提供最高性能的 2D 和 3D 图形能力。

  1. OpenGL ES 3.1 添加了计算着色器、模具纹理、加速视觉效果、高质量 ETC2/EAC 纹理压缩、高级纹理渲染、标准化纹理尺寸和 render-buffer 格式以及其他功能。
  2. Android 5.0 还引入了 Android 扩展包 (AEP),这组 OpenGL ES 扩展让您可以访问镶嵌着色器、几何着色器、ASTC 纹理压缩、每采用内插和着色之类的功能,以及其他高级渲染功能。您可以借助 AEP 在各类 GPU 上实现高性能图形。

6.更强大的音频功能

  1. 全新的音频采集设计可提供低延迟音频输入。这种全新设计包括:在除读取期间之外的任何情况下均不会发生堵塞的快速采集线程;采用原生采样率、声道计数和位深度的快速采集客户端;以及提供重新采样、上/下声道混音和上/下位深度的正常采集客户端。
  2. 多声道音频流混音允许专业音频应用对多达八个声道(包括 5.1 和 7.1 声道)进行混音。
  3. Android 现在提供对标准 USB 音频外设的支持,允许用户连接 USB 耳机、扬声器、麦克风或其他高性能数字外设。Android 5.0 还添加了对 Opus 音频编解码器的支持。
  4. 新增了用于控制媒体回放的 MediaSession API,现在可以更轻松地在各类屏幕和其他控制器上提供一致的媒体控制。

7.增强的相机和视频功能

  1. Android 5.0 引入了全新的 Camera API,允许您采集 YUV 和 Bayer RAW 等原始格式,以及控制曝光时间、感光度和每一帧的帧持续时间等参数。新增的完全同步相机管道允许您在受支持设备上在 30 FPS 下采集未经压缩的全分辨率 YUV 图像。
  2. 通过网络发送视频流的应用现在可以利用 H.265 高效率视频编码 (HEVC) 来优化视频数据的编码和解码。
  3. Android 5.0 还添加了对多媒体隧道的支持,以提供最佳超高分辨率 (4K) 内容体验和同时播放压缩音频和视频数据的功能。

8.屏幕采集和共享

Android 5.0 让您可以为应用添加屏幕采集和屏幕共享功能。
在用户许可的情况下,如果您愿意,可以从显示屏采集非安全视频并通过网络提供采集的视频。

9.新的传感器类型

  1. 在 Android 5.0 中,新增的倾斜检测器传感器有助于改善受支持设备上的 Activity 识别,心率传感器可报告触摸设备者的心率。
  2. 新增的互动复合传感器现在可以检测“唤醒”手势、“拿起”手势和“扫视”手势等特殊交互。

10.Chromium WebView

  1. Android 5.0 的初始版本提供了一版基于 Chromium M37 版本的 Chromium for WebView,添加了对 WebRTCWebAudioWebGL 的支持。
  2. Chromium M37 还提供对以下所有 Web 组件规范的原生支持:自定义元素阴影 DOMHTML 导入模板。这意味着您无需 polyfill 便可在 WebView 中使用 Polymer 及其 Material Design 元素。

11.用于开发省电应用的工具

  1. 新增的 Job Scheduling API 允许您通过将作业推迟到稍后或指定条件下(如设备充电或连入 WLAN 时)运行来优化电池寿命。
  2. 新增的 dumpsys batterystats 命令可生成电池使用情况统计信息,您可通过它了解整个系统的耗电情况,以及了解您的应用对设备电池的影响。您可以查看耗电事件历史记录、每个 UID 和系统组件的近似耗电情况以及其他信息。
    [Android各版本特性]Android 5.0 Android Lollipop
  3. 新增了“电池耗电历史”工具,可将来自 dumpsys batterystats 的统计数据转换成可视化格式,以便进行与电池有关的调试。您可以在 https://github.com/google/battery-historian 上找到该工具。

12.Android 5.0行为变更

Android 5.0 除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更。

  1. Android NDK 中的 64 位支持
    Android 5.0 引入了对 64 位系统的支持。64 位增强功能可增加地址空间和提升性能,同时仍完全支持现有的 32 位应用。64 位支持也可改进用于加密的 OpenSSL 的性能。此外,该版本还引入了新的原生媒体 NDK API,以及原生 OpenGL ES (GLES) 3.1 支持。

  2. 绑定到服务
    Context.bindService() 方法现在需要显式 Intent,如果提供隐式 intent,将引发异常。为确保应用的安全性,请使用显式 intent 启动或绑定 Service,且不要为服务声明 intent 过滤器。

  3. WebView
    Android 5.0 更改了应用的默认行为。

    如果您的应用是面向 API 级别 21 或更高级别:
    默认情况下,系统会阻止混合内容和第三方 Cookie。要允许混合内容和第三方 Cookie,请分别使用 setMixedContentMode() 和 setAcceptThirdPartyCookies() 方法。
    系统现在可以智能地选择要绘制的 HTML 文档部分。这个新的默认行为有助于减少内存占用和提升性能。如果您要一次渲染整个文档,可通过调用 enableSlowWholeDocumentDraw() 停用此优化。

    如果您的应用是面向低于 21 的 API 级别:系统允许混合内容和第三方 Cookie,并始终一次渲染整个文档。

  4. TLS/SSL 默认配置变更
    Android 5.0 针对 HTTPS 和其他 TLS/SSL 通信引入了对应用使用的默认 TLS/SSL 配置的变更:

    TLSv1.2 和 TLSv1.1 协议现已启用,
    AES-GCM (AEAD) 加密套件现已启用,
    MD5、3DES、导出和静态** ECDH 加密套件现已停用,
    首选使用 Forward Secrecy 加密套件(ECDHE 和 DHE)。

    在下面列出的少数情况下,这些变更可能会导致 HTTPS 或 TLS/SSL 连接断开。

    服务器不支持任何已启用的加密套件
    应用对用于连接服务器的加密套件做出错误的假设
    服务器不支持 TLSv1.1、TLSv1.2 或新的 TLS 扩展

*12.常用API应该注意的部分

  1. Material Design 支持
    Android 5.0 添加了对 Android 的新 Material Design 样式的支持。您可以创建具有 Material Design 功能的应用,实现动态视觉效果,利用其中的 UI 元素转换赋予用户自然的感觉。此支持包括:

    1.Material Design 主题
    2.视图阴影
    3.RecyclerView 小部件
    4.可绘制动画和造型效果
    5.Material Design 动画和 Activity 转换效果
    6.针对基于视图状态的视图属性的动画生成器
    7.可自定义的 UI 小部件和具有可由您控制的调色板的应用栏
    8.基于 XML 矢量图形的动画和非动画可绘制对象

  2. 计划排定作业
    Android 5.0 新增了一个 JobScheduler API,允许您定义一些系统在稍后或指定条件下(如设备充电时)以异步方式运行的作业,从而优化电池寿命。下列情形下,作业计划排定功能很有用:

    应用具有不面向用户并且可以推迟的作业
    应用具有您更愿意在设备插入电源时再进行的作业
    应用具有一项需要接入网络或连接 WLAN 的任务。
    应用具有多项您希望定期以批处理方式运行的任务。
    一个作业单位由一个 JobInfo 对象封装。该对象指定计划排定标准。

    使用 JobInfo.Builder 类可配置应如何运行已排计划的任务。您可以安排任务在特定条件下运行,例如:

    在设备充电时启动
    在设备连入无限流量网络时启动
    在设备空闲时启动
    在特定期限前或以最低延迟完成

*13.Android5.1常用API应该注意的部分

1.多 SIM 卡支持
Android 5.1 添加了对同时使用多个蜂窝运营商 SIM 卡的支持。有了此功能,用户可以在具有两个或多个 SIM 卡插槽的设备上**和使用额外的 SIM。
2. 已弃用的 HTTP 类
Android 5.1 中已弃用 org.apache.http 类和 android.net.http.AndroidHttpClient 类。这些类将不再保留,您应尽快将使用这些 API 的任何应用代码迁移至 URLConnection 类。