龙空技术网

Android 11 安装外部来源应用需要重启 APP

Java架构师日记 162

前言:

眼前小伙伴们对“javaobb算法”大致比较珍视,你们都需要剖析一些“javaobb算法”的相关文章。那么小编同时在网络上汇集了一些有关“javaobb算法””的相关知识,希望兄弟们能喜欢,同学们快快来学习一下吧!

分享开发、架构等综合知识,同名公众号,wx号:Java7749

尽管每次 Android 版本更新都会引入一系列新功能,但谷歌习惯重新打磨或者完全删除某些称手的功能和特性,而目前处于 Developer Preview 4 的 Android 11 也不例外。

正如开发者在问题追踪器上提交的那样,新版 Android 让应用安装 APK 的权限变得不再方便,需要重新启动相关应用才能生效。该行为与强制分区存储(Scoped Storage)有关。

在 Android 10 及以下版本,APK 文件的安装过程相对来说比较简单。当你从浏览器或者其他应用(例如 APKMirror Installer)中安装 APK 文件的时候,会被要求授予安装权限。如果你选择打开该选项,那么使用手势或者点击返回按钮就会跳转回原来的位置,并且会跳出一个对话框询问你是否愿意安装之前选择的 APK。如下方图片所示:

而这个行为在 Android 11 上就会发生改变。正如不满该特性的测试人员在该问题的追踪页面上所反馈的,在用户授予权限之后,虽然安装对话框依然会弹出,但是该应用本身却消失了。

当你重新打开应用程序的时候,你就会发现整个 APP 被重新加载,这就意味着此前输入的内容或者其他尚未缓存的数据就会丢失。而 Android 通常只有在撤销权限的时候才会强行退出应用程序以阻止应用被破解,而不是在授予权限的时候强行退出。

在问题追踪器上,谷歌工程师并没有太过重视这个问题。最初的评论中只是写道:“这实际上是按照预期的工作方式进行”。直到有更多开发者反馈这个问题之后,谷歌才明确这个新特性是实际上和强制分区存储(Scoped Storage)有关。

在 Android R 中,文件系统和存储挂载的设置方式发生了很大变化。当一个应用程序在没有这个权限的情况下启动时,它将获得一个不允许写入某些目录(例如 Android/obb 的文件系统视图。一旦应用被授予了这个权限,这个视图就不再准确,需要更新为允许应用写入某些目录的视图。

以 Android R 文件系统现有的设置方式,不可能马上改变这个视图。正如评论#16中提到的,我们正在内部评估。我只是提供了一些额外的细节,说明为什么这和 Android Q 上的方式不一样。

虽然 Scoped Storage 将有利于安全和隐私,但新系统显然会带来比预期的更大的变化。希望谷歌能想出一个不需要强行退出应用程序改变其读写权限的解决方案。

标签: #javaobb算法