近日,谷歌推送了最新的Android 11第二个开发者预览版(Developer Preview 2)更新,而这距离上一个版本已过去了一个月之久。
按照谷歌提供的里程碑列表,从今年2月份起,每月将会发布一个开发者预览版,直至第三季度Android 11最终版本推出。谷歌官方提示广大开发者,尽早开始应用程序兼容性的测试,留更充裕的时间用于后期的适配处理。
图片来自网络
本次新版本主要带来了新的隐私保护措施,用于5G、共享、连接、媒体等方面新的API,另外也有一些用户行为的变更。下面,小编将结合最新的开发者预览版,解读Android 11在第三方移动应用工具中兼容测试及适配,需要注意的要点。
01
存储及隐私的变化
在系统存储上,Android 11将正式使用沙箱模式、存储访问框架限制、媒体文件批量处理。隐私变化的更新,主要围绕“位置”,“相机”,“麦克风”三组权限,在用户选择时增加“仅这次”选项、位置权限选择框中不再显示“始终允许”选项、两次“拒绝”将视为“不再询问”。
图片来自安卓开发者平台官网
02
值得关注的新功能
在第三方移动应用开发中,值得开发者关注的是Android 11引入了“数据访问审核”功能,通知栏增加快速回复图片等媒体以及安全共享大型数据集,并对Android模拟器中的相机支持了扩展。
03
适配及新功能的使用
1)配置Android 11环境
- Pixel手机刷入,需前往Android开发者平台获取相应的image或在AS中下载Android 11模拟器;
- SDK-Manager可下载最新的Android R Preview版本、Android SDK Build-Tools 30-rc1;
- build.gradle配置compileSdkVersion’android-R’、buildToolsVersion"30-rc1"、targetSdkVersion ‘R’。
2)沙箱适配要点提示
- Android使用的文件系统,类似于其他平台上基于磁盘的文件系统。系统可为开发者提供一些保存应用数据的选项;
- 特定于应用程序的存储:将仅供开发者的应用程序使用文件存储在内部存储卷内的专用目录中,或外部存储中的其他专用目录中。使用内部存储中的目录,来保存其他应用程序不应访问的敏感信息;
- 共享存储:存储开发者的应用打算与其他应用共享的文件,包括媒体,文档和其他文件;
- 首选项:将私有原始数据存储在键值对中;
- 数据库:使用Room持久性库将结构化数据存储在专用数据库中。
3)后台位置权限的适配
- 如应用targetSdkVersion=‘R’:请求ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION位置权限。用户选择“允许”后,再次请求ACCESS_BACKGROUND_LOCATION位置权限,此时会跳转“系统位置权限”页面,包含“始终允许”选项。
效果如下:
图片来自网络
使用方式:
//targetR,必须先申请FINE OR COARSE LOCATION,然后申请BACKGROUND LOCATION,才能跳转到系统设置页面,
//否则直接申请BACKGROUND LOCATION将无效
//申请数组将android.permission.ACCESS_BACKGROUND_LOCATION、FINE、COARSE和任意权限放一起申请将报错
if (checkSelfPermission("android.permission.ACCESS_FINE_LOCATION") !=PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{
"android.permission.ACCESS_FINE_LOCATION"}, 0);
}
else if (checkSelfPermission("android.permission.ACCESS_BACKGROUND_LOCATION") !=
PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{
"android.permission.ACCESS_BACKGROUND_LOCATION"}, 0);
}
- 如应用targetSdkVersion<‘R’:permissions数组同时包含ACCESS_BACKGROUND_LOCATION,ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION,此时权限框中会有“在设置中允许”的入口,跳转后可选择“始终允许”;
效果如下: