Android KitKat
全屏沉浸模式
RenderScript Compute 单CPU,无法调试
安全增强功能 SELinux(强制模式) 改进加密算法 Https证书改变
Android Lollipop
1.ART 运行时上独占运行,这个全新开发的运行时支持混合使用预先编译 (AOT) 代码、即时编译 (JIT) 代码和解释代码。它支持 ARM、x86 和 MIPS 架构,并全面兼容 64 位。
ART 可改善应用性能和响应速度。高效的垃圾收集可减少 GC 事件的暂停次数和持续时间,让事件能够充分适应垂直同步窗口,以避免您的应用发生跳帧。ART 还能通过动态转移内存来优化前台使用的性能。
Android 5.0 引入了对 64 位架构—Nexus 9 的 NVIDIA Tegra K1 所采用的架构的平台支持。优化增大了地址空间,改善了特定计算负载下的性能。使用 Java 语言编写的应用会自动作为 64 位应用运行—无需进行任何修改。如果您的应用使用原生代码,可以利用我们扩展后的 NDK,它为 ARM v8、x86-64 和 MIPS-64 提供了新 ABI 支持。
2.高性能图形
OpenGL ES 3.1 添加了计算着色器、模具纹理、加速视觉效果、高质量 ETC2/EAC 纹理压缩、高级纹理渲染、标准化纹理尺寸和 render-buffer 格式以及其他功能。
3.屏幕采集和共享
Android 5.0 引入了新的 android.media.projection API,让您可以为应用添加屏幕采集和屏幕共享功能。例如,如果您想在视频会议应用中启用屏幕共享,便可使用此功能。
4.计划排定作业
Android 5.0 新增了一个 JobScheduler API,允许您定义一些系统在稍后或指定条件下(如设备充电时)以异步方式运行的作业,从而优化电池寿命。下列情形下,作业计划排定功能很有用:
应用具有不面向用户并且可以推迟的作业
应用具有您更愿意在设备插入电源时再进行的作业
应用具有一项需要接入网络或连接 WLAN 的任务。
应用具有多项您希望定期以批处理方式运行的任务。
5.getRecentTasks()
Android 5.0 中引入新的“并发文档和 Activity 任务”功能后(请参阅下文最近使用的应用屏幕中的并发文档和 Activity),为提升用户隐私的安全性,现已弃用 ActivityManager.getRecentTasks() 方法。对于向后兼容性,此方法仍会返回它的一小部分数据,包括调用应用自己的任务和可能的一些其他非敏感任务(如首页)。如果您的应用使用此方法检索它自己的任务,则改用 getAppTasks() 检索该信息。
6.自定义权限唯一性要求
根据权限概述中所述,Android 应用可以定义以专有方式管理组件访问权限的自定义权限,无需使用平台预定义的系统权限。应用在其清单文件中声明的 元素中定义自定义权限。
少数情况下定义自定义权限是合规且安全的方法。不过,创建自定义权限有时并无必要,甚至可能会给应用带来潜在风险,具体取决于分配给权限的保护级别。
Android 5.0 其中一项行为变更确保只有一个应用可以定义给定自定义权限,除非使用与定义权限的其他应用相同的密钥行签名。
Android Marshmallow
1.运行时权限
对于以 Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否已被授予权限,请调用新增的 checkSelfPermission() 方法。要请求权限,请调用新增的 requestPermissions() 方法。即使您的应用并不以 Android 6.0(API 级别 23)为目标平台,您也应该在新权限模式下测试您的应用。
2.Android for Work 功能
Android Nougat
1.多窗口支持
2.配置文件指导的 JIT/AOT 编译
在 Android 7.0 中,我们添加了即时 (JIT) 编译器,对 ART 进行代码分析,让它可以在应用运行时持续提升 Android 应用的性能。JIT 编译器对 Android 运行组件当前的 Ahead of Time (AOT) 编译器进行了补充,有助于提升运行时性能,节省存储空间,加快应用更新和系统更新速度。
配置文件指导的编译让 Android 运行组件能够根据应用的实际使用以及设备上的情况管理每个应用的 AOT/JIT 编译。例如,Android 运行组件维护每个应用热方法的配置文件,并且可以预编译和缓存这些方法以实现最佳性能。对于应用的其他部分,在实际使用之前不会进行编译。
除提升应用的关键部分的性能外,配置文件指导的编译还有助于减少整个 RAM 占用,包括关联的二进制文件。此功能对于低内存设备非常尤其重要。
Android 运行组件在管理配置文件指导的编译时,可最大程度降低对设备电池的影响。仅当设备处于空闲状态和充电时才进行编译,从而可以通过提前执行该工作节约时间和省电。
Android Oreo
1.AnimatorSet
从 Android 8.0 开始,AnimatorSet API 现在支持寻道和倒播功能。寻道功能允许您将动画的位置设置为指定的时间点处。如果您的应用包含可撤消的操作的动画,倒播功能会很有用。现在,您不必定义两组独立的动画,而只需反向播放同一组动画。
2.后台执行限制
后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。 这些限制不适用于前台服务,因为前台服务更容易引起用户注意。在很多情况下,您的应用都可以使用 JobScheduler 作业替换后台服务。
广播限制:除了有限的例外情况,应用无法使用清单注册隐式广播。 它们仍然可以在运行时注册这些广播,并且可以使用清单注册专门针对它们的显式广播。摆脱Manifest文件中的所有隐式广播,使用JobScheduler,FirebaseJobDispatcher或替代方案替代您的任务,如果不支持你的广播,那么请在activity、fragment、service中注册你的广播。
Android Pie
1.对非 SDK 接口的限制
一般来说,SDK 接口是指在 Android 框架软件包索引中记录的接口。 对非 SDK 接口的处理是 API 抽象化的实现细节;其会随时更改,恕不另行通知。
Android 9 引入了针对非 SDK 接口的使用限制,无论是直接使用还是通过反射或 JNI 间接使用。 无论应用是引用非 SDK 接口还是尝试使用反射或 JNI 获取其句柄,均适用这些限制。