引言
- 有时总是记不住Android某个特性是哪个版本引入的,哪些版本会受到影响,每次都需要重新去查一遍,最近开始看《Android进阶之光》一书,第一章就是介绍各版本的新特性,索性做个笔记,并计划不断更新。
- 其实说新特性有点不准确,分析一个全新版本的新特性,应该从版本新功能和接口变动两个方面分析。
- 新特性是指只在此版本上的功能,低于此版本的设备无法使用。
- 接口变动指的是我们的APP运行到Android新版本上需要做出的调整(版本适配)。
版本变更记录
- v1.0,2022年3月6日,笔记记录《Android进阶之光》中对5.0~10.0版本新特性介绍。
- v2.0,2022年3月12日,查阅资料补齐11~12版本新特效介绍。
5.0 新特性—2014年(Lollipop)
- 全新的Material Design设计风格。
- 支持64位ART虚拟机。
- 放弃了之前一直使用的Dalvik虚拟机,改用了ART虚拟机,实现了真正的跨平台编译。(todo:弄懂为何)
- 引入RecyclerView(todo:它的优点)。
- 新增悬挂式Notification。
- 相较于普通式和折叠式Notification需要拉下通知中心才可以查看的交互,悬挂式直接显示在屏幕上方,并且焦点不变,仍然在用户操作的界面上,不会打断用户的操作,过几秒会消失。
- Android 5.0 支持对Notification设置显示等级的能力。
- 引入更加灵活的Toolbar,取代ActionBar。
6.0 新特性—2015年(Marshmallow)
统一支付标准Android Pay。
指纹支持。
-
Doze电量管理。
- 手机静止不动一段时间后,会进入Doze电量管理模式,提高续航时间。
-
APP Links。
- 加强了软件间的关联,支持点击链接跳转到对应的App(todo:scheme调起???)
-
Now on Tap
- 长按Home键激活Now on Tap,他会识别当前屏幕上的内容并创建Now卡片。
-
【重点】运行时权限管理。
targetSdkVersion >= 23。
分位Normal Permissions和Dangerous Permissions。
ActivityCompat.checkSelfPermissions()请求,低于6.0的版本,次方法默认返回值为PackManager.PERMISSION_GRANTED。
onRequestPermissionsResult()回调结果。
如果用户选择了『不在询问』,下次则不会弹框,而是直接处理拒绝后的逻辑。
7.0 新特性—2016年(Nougat)
- 多窗口模式(分屏模式)
- 进入多窗口的Activity生命周期变化,会先onDestroy销毁,随后重建,停在onPause状态。
- 推出多窗口的Activity生命周期变化,接着上面onPause->onDestroy,随后正常重建。
- 禁用多窗口模式:在manifest.xml中配置
android:resizeableActivity="false"
- Data Server
- 一种流量保护机制,启用Data Server后,系统将拦截后台应用的数据使用。
- 改进的Java8语言支持。
- 支持java8,可以使用lambda表达式等。
- 自定义壁纸
- 设置壁纸时,可以选择是设置桌面还是锁屏壁纸。
- 快捷回复
- 在通知中快捷回复。
- 快速设置
- 下拉通知栏顶部,有edit按钮,可以对菜单进行自定义添加、删除、拖动排序。
- 其它:Daydream VR、后台省点、Unicode 9支持和全新的emoji表情符号、Google Assistant。
8.0 新特性—2017年(Oreo)
-
【重点】通知中心
- 所有通知都必须分到一个渠道,即新增NotificationChannel。
- 画中画(PIP)支持
- 一种特殊的多窗口模式,常用于视频播放。
- 自适应启动器图标
- 桌面icon在不同的设备型号上显示为不同的形状。
- 后台执行限制
- 后台service限制。
- 广播限制:除了有限的例外情况,应用无法使用清单注册隐式广播。
- 后台位置信息限制
- 为降低耗电量,后台应用检索用户当前位置信息的频率会得到限制。
- 其它:自动填充框架、自动调整TextView的大小、WebView API、多显示器支持
9.0 新特性—2018年(Pie)
- 全面支持全面屏
- 通过DisplayCutout类可以确定非功能区域的位置和形状,这些区域不应显示内容。
- 动画
- 引入AnimatedImageDrawable类,用于显示GIF和WebP动画图像。
- 利用Wi-Fi RTT进行室内定位。
- 隐私变更
- 限制后台访问设备传感器,限制通过WiFi扫描检索到的信息等。
- 其它:机器学习,HDR VP9视频、HEIF图像压缩和Media API、对使用非SDK接口的限制。
10.0 新特性—2019年(Q)
- 5G支持。
- 支持可折叠设备。
- 【重点】暗黑主题。
- 手势导航。
- 全面屏手势操作。
- 智能回复。
- 通过机器学习预测你在回复消息时可能会说些什么。
- 用户隐私。给用户更多应用程序控制权。
- 提供仅这一次、应用使用时授权等选择。
- ART优化,
- 添加了一种垃圾回收机制,节省垃圾回收的时间,帮助在低版本设备上顺畅运行。
- 机器学习更新。
11.0 新特性—2020年(R)
- 短信 更新改进,提供更加友好的交互。
- 权限和隐私
- 在Android10的用户隐私基础上,新增了位置、麦克风和摄像头的一次性权限许可。
- 内置屏幕录制。
- 适配不同设备。
- 折叠屏支持优化,增加铰链角度传感器API等。
- 高刷新率支持。
- 网络优化。
- 新增『动态计量API』,如果检测到连接到无限5G信号,将可以访问最高质量的视频和图片。
12.0 新特性—2021年
- 原生的ImageDecoder支持GIF和WebP格式。
- 支持圆角。
-
Display.getRounderCorner()
获取屏幕圆角的详细信息。
-
- 更易用的模糊、色彩滤镜等特效。
-
View.setRenderEffect(RenderEffect)
将特效直接应用于视图
-
- 限制对MAC地址的访问。
- 应用覆盖控制。
- 可以控制是否允许在自己的内容上显示这些覆盖图层,调用
Window#setHideOverlayWindows()
,表明不允许TYPE_APPLICATION_OVERLAY
的窗口显示。
- 可以控制是否允许在自己的内容上显示这些覆盖图层,调用
- 应用无法关闭系统对话框。
- 弃用了
ACTION_CLOSE_SYSTEM_DIALOGS
intent 操作。
- 弃用了
- Activity/BroadcastReciver/Service 声明了Filter,则必须显示设置
android:exported
属性。 - 必须为每个PendingIntent设置可变性。
- 后台应用无法再启动前台服务。
参考资料
- 《Android进阶之光-第2版》刘望舒。
- Android11新特性。
- Android11功能变更
- Android 12 功能和变更列表
- Android 12 新特性 - 基于预览版2