Android 6.0(M):
动态申请权限。
Android 7.0(N):
1.文件共享不能再使用file://这样的uri去分享访问了,会报FileUriExposedException错误(比如照片剪辑的Intent跳转),用FileProvider替代。
2.Android7.0会在手机屏幕关闭的状态下,限时应用对CPU以及网络的使用。
Android 8.0(O):
1.引入了通知渠道。
2.限制后台服务,需要声明为前台服务,即可在通知栏看到。
3.取消大部分静态注册广播,包括我们自定义的静态广播(静态广播即在清单文件注册的广播)。
Android 9.0(P):
1.刘海屏适配。
2.非 SDK 接口限制,非SDK接口分了几类名单,白名单(不受限制),灰名单(暂时不受限),黑名单(受限,使用报错),还有版本过渡才被限制的名单。直接导致插件化框架没落。
Android 10.0(Q):
1.文件存储沙盒,无法访问其他软件的私有文件(Context.getExternalFilesDir()),访问自己的私有文件不需要权限。访问媒体共享文件,比如照片,音乐,视频等,需要申请新的媒体权限:READ_MEDIA_IMAGES,READ_MEDIA_VIDEO,READ_MEDIA_AUDIO,访问文件需要用存储访问框架。
2.后台启动 Activity 的限制,应用处于后台时,无法启动Activity。
Android 11.0(R):
1.强制打开分区存储,同时requestLegacyExternalStorage将会无效
2.获取“所有文件访问权限”(其他应用私有文件除外):
● 声明 MANAGE_EXTERNAL_STORAGE 权限。
● 使用 ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION intent 操作将用户引导至一个系统设置页面,在该页面上,用户可以为您的应用启用以下选项:授予所有文件的管理权限。
Android 12:
1.manifest强制声明android:exported
2.访问第三方应用manifest需要增加requires标签
3.禁止自定义toast
4.应用启动页splash只能使用小图logo