[Android各版本特性]Android 5.0 Android Lollipop
文章目录
1.Material Design
- Android 5.0 为 Android 引入了 Material Design,并为您提供了扩充的 UI 工具包,更便于您在应用中集成新的设计模式。
- 内置的 Activity 转换可让用户在赏心悦目的动画中无缝完成状态转换。
- 为您的应用中的按钮、复选框以及其他触摸控件提供了波纹动画。
- 新增了一种名为渲染线程的系统管理处理线程,即使是在主 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 中的通知更醒目、更便于访问并且可配置程度更高。
- 只要用户愿意,可在锁定屏幕上显示各种通知详情。用户可以选择在安全的锁定屏幕上显示部分、全部或者不显示任何通知内容。
- 来电等主要通知提醒出现在抬头通知中 — 这个小浮动窗口让用户不必离开当前应用便能响应或拒绝通知。
- 您现在可以为通知添加新的元数据,以收集相关联系人(用于排序)、类别和优先级。
- 新增的媒体通知模板通过多达 6 个操作按钮提供一致的通知媒体控制,包括“点赞”等自定义控制—不再需要 RemoteViews 了!
4.高级连接
- Android 5.0 新增了允许应用利用蓝牙低能耗 (BLE) 执行并发操作的 API,可同时实现扫描(中心模式)和广播(外设模式)。
- 新增的多网络功能允许应用查询可用网络提供的功能,例如它们是 WLAN 网络、蜂窝网络还是按流量计费网络,或者它们是否提供特定网络功能。然后应用可以请求连接并对连接丢失或其他网络变化作出响应。
- NFC API 现在允许应用动态注册 NFC 应用 ID (AID)。它们还可以设置每个活动服务的首选卡模拟服务,并创建包含 UTF-8 文本数据的 NDEF 记录。
5.高性能图形
对 Khronos OpenGL ES 3.1 的支持现在可在受支持设备上为游戏和其他应用提供最高性能的 2D 和 3D 图形能力。
- OpenGL ES 3.1 添加了计算着色器、模具纹理、加速视觉效果、高质量 ETC2/EAC 纹理压缩、高级纹理渲染、标准化纹理尺寸和 render-buffer 格式以及其他功能。
- Android 5.0 还引入了 Android 扩展包 (AEP),这组 OpenGL ES 扩展让您可以访问镶嵌着色器、几何着色器、ASTC 纹理压缩、每采用内插和着色之类的功能,以及其他高级渲染功能。您可以借助 AEP 在各类 GPU 上实现高性能图形。
6.更强大的音频功能
- 全新的音频采集设计可提供低延迟音频输入。这种全新设计包括:在除读取期间之外的任何情况下均不会发生堵塞的快速采集线程;采用原生采样率、声道计数和位深度的快速采集客户端;以及提供重新采样、上/下声道混音和上/下位深度的正常采集客户端。
- 多声道音频流混音允许专业音频应用对多达八个声道(包括 5.1 和 7.1 声道)进行混音。
- Android 现在提供对标准 USB 音频外设的支持,允许用户连接 USB 耳机、扬声器、麦克风或其他高性能数字外设。Android 5.0 还添加了对 Opus 音频编解码器的支持。
- 新增了用于控制媒体回放的 MediaSession API,现在可以更轻松地在各类屏幕和其他控制器上提供一致的媒体控制。
7.增强的相机和视频功能
- Android 5.0 引入了全新的 Camera API,允许您采集 YUV 和 Bayer RAW 等原始格式,以及控制曝光时间、感光度和每一帧的帧持续时间等参数。新增的完全同步相机管道允许您在受支持设备上在 30 FPS 下采集未经压缩的全分辨率 YUV 图像。
- 通过网络发送视频流的应用现在可以利用 H.265 高效率视频编码 (HEVC) 来优化视频数据的编码和解码。
- Android 5.0 还添加了对多媒体隧道的支持,以提供最佳超高分辨率 (4K) 内容体验和同时播放压缩音频和视频数据的功能。
8.屏幕采集和共享
Android 5.0 让您可以为应用添加屏幕采集和屏幕共享功能。
在用户许可的情况下,如果您愿意,可以从显示屏采集非安全视频并通过网络提供采集的视频。
9.新的传感器类型
- 在 Android 5.0 中,新增的倾斜检测器传感器有助于改善受支持设备上的 Activity 识别,心率传感器可报告触摸设备者的心率。
- 新增的互动复合传感器现在可以检测“唤醒”手势、“拿起”手势和“扫视”手势等特殊交互。
10.Chromium WebView
- Android 5.0 的初始版本提供了一版基于 Chromium M37 版本的 Chromium for WebView,添加了对 WebRTC、WebAudio 和 WebGL 的支持。
- Chromium M37 还提供对以下所有 Web 组件规范的原生支持:自定义元素、阴影 DOM、HTML 导入和模板。这意味着您无需 polyfill 便可在 WebView 中使用 Polymer 及其 Material Design 元素。
11.用于开发省电应用的工具
- 新增的 Job Scheduling API 允许您通过将作业推迟到稍后或指定条件下(如设备充电或连入 WLAN 时)运行来优化电池寿命。
- 新增的 dumpsys batterystats 命令可生成电池使用情况统计信息,您可通过它了解整个系统的耗电情况,以及了解您的应用对设备电池的影响。您可以查看耗电事件历史记录、每个 UID 和系统组件的近似耗电情况以及其他信息。
- 新增了“电池耗电历史”工具,可将来自 dumpsys batterystats 的统计数据转换成可视化格式,以便进行与电池有关的调试。您可以在 https://github.com/google/battery-historian 上找到该工具。
12.Android 5.0行为变更
Android 5.0 除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更。
-
Android NDK 中的 64 位支持
Android 5.0 引入了对 64 位系统的支持。64 位增强功能可增加地址空间和提升性能,同时仍完全支持现有的 32 位应用。64 位支持也可改进用于加密的 OpenSSL 的性能。此外,该版本还引入了新的原生媒体 NDK API,以及原生 OpenGL ES (GLES) 3.1 支持。 -
绑定到服务
Context.bindService() 方法现在需要显式 Intent,如果提供隐式 intent,将引发异常。为确保应用的安全性,请使用显式 intent 启动或绑定 Service,且不要为服务声明 intent 过滤器。 -
WebView
Android 5.0 更改了应用的默认行为。如果您的应用是面向 API 级别 21 或更高级别:
默认情况下,系统会阻止混合内容和第三方 Cookie。要允许混合内容和第三方 Cookie,请分别使用 setMixedContentMode() 和 setAcceptThirdPartyCookies() 方法。
系统现在可以智能地选择要绘制的 HTML 文档部分。这个新的默认行为有助于减少内存占用和提升性能。如果您要一次渲染整个文档,可通过调用 enableSlowWholeDocumentDraw() 停用此优化。如果您的应用是面向低于 21 的 API 级别:系统允许混合内容和第三方 Cookie,并始终一次渲染整个文档。
-
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应该注意的部分
-
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 矢量图形的动画和非动画可绘制对象 -
计划排定作业
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 类。