**5.0**
- Material Design
- 支持多种设备
- 全新通知中心
- 支持 64 位 ART 虚拟机
- 电池续航改进
- 全新“最近应用程序”
- 安全性改进
- 不同数据独立保存
- 改进搜索
- 支持蓝牙 4.1、USB Audio、多人分享等
开发中注意的地方:
增加了很多新控件,如抽屉布局,菜单布局,卡片布局,列表布局新增RecyclerView,选项卡布局等可以在需要的时候随时拿来使用而不必再重新自定义控件了。
具体可参考:https://blog.csdn.net/divaid/article/details/82687759
系统开发文档:
https://developer.android.com/about/versions/android-5.0-changes?hl=zh-cn
**6.0**
- 动态权限管理
- 系统层支持指纹识别
- APP 关联
- Android Pay
- 电源管理
- TF 卡默认存储
开发时注意的地方:
主要是动态的权限申请了,6.0以下的版本可以直接申请权限直接使用了,以上的版本需要一些敏感权限时需要动态申请:
具体可参考:https://blog.csdn.net/divaid/article/details/82025918
系统开发文档:
https://developer.android.com/about/versions/marshmallow/android-6.0-changes?hl=zh-cn
**7.0**
- 分屏多任务
- 下拉快捷开关
- 新通知消息
- 夜间模式
- 流量保护模式
- 全新设置样式
- 改进 Doze 休眠机制
- 系统级电话黑名单
- 菜单键快速切换应用
开发时注意的地方:
7.0对于sdcard的文件uri的访问做了限制且获取文件uri的方式跟以前不再一样,开发时需要注意。
具体可参考:
https://blog.csdn.net/divaid/article/details/79419858
系统开发文档:
https://developer.android.com/about/versions/nougat/android-7.0-changes?hl=zh-cn
**8.0**
- 画中画(估计主要为pad准备的功能);
- 通知标志(要添加channel了)
- 自动填充框架
- 系统优化
- 后台限制
- 应用快捷键
- 语言区域和国际化
开发时注意的地方:
- 8.0对于安装新的apk做了更严格的限制,在app更新时需要做些处理;
- 一些系统广播不再支持静态注册,需要转成动态注册的方式具体可参考:https://blog.csdn.net/divaid/article/details/81261825。
- 不允许后台运行的service了,启动service时要调用startForegroundService了,并在service中调用startForeground在通知栏显示一条通知让用户了解这个服务正在运行。
系统开发文档:
https://developer.android.com/about/versions/oreo/android-8.0-changes?hl=zh-cn
**9.0**
- 刘海设计
- 黑白模式切换
- 加入长截图
- 加入护眼模式
- 通知栏的体验优化
- Material Design功能更新等等
开发注意点:
- 在使用服务时要申请FOREGROUND_SERVICE权限;
- 不能直接Build.SERIAL获取设备序列号了,要先申请READ_PHONE_STATE权限,然后通过Build. getSerial()获取(内部通过IDeviceIdentifiersPolicyService服务传入package获取的);
- Apache的HttpClient库完全移除了,要继续使用的话需要在Manifest文件中添加<uses-library android:name=“org.apache.http.legacy” android:required=“false”/>(建议直接外部gradle依赖引入);
系统开发文档:
https://developer.android.com/about/versions/pie/android-9.0-changes-all?hl=zh-cn
**10.0**
开发注意点:- 有了分区存储逻辑,具体站一下巨人肩膀就不自己写博客了:https://blog.csdn.net/qq_24125575/article/details/109189245,在Android10.0的话还可以在Manifest文件中的application添加属性requestLegacyExternalStorage为true来强制不分区以达到外部文件完全访问效果;
- 定位权限权限收紧,不允许在后台偷偷定位了,需要用LocationService前台服务方式;
- 不允许后台启动页面了,但是在有前台服务时,且用户允许了后台启动时也是可以从后台打开页面的;
**11.0**
- 强制分区存储,添加了requestLegacyExternalStorage也没用了,因此还是老老实实的把文件存到应用私有目录及媒体目录吧;
- 电话权限重新分组,配置中添加READ_PHONE_STATE及READ_PHONE_NUMBERS申请及代码中添加READ_PHONE_NUMBERS权限的动态申请;
其他可参考(搜了之后才知道还有这么多):https://blog.csdn.net/fitaotao/article/details/112958200