是我看走眼了吗?最新 Android 11 依然不会强制 Scoped Storage

2020-08-15 16:57:30 +08:00
 gzxu

刚看到文档里面更新了这一节 Android 存储用例和最佳做法 - 暂时停用分区存储,里面说:

在您的应用与分区存储完全兼容之前,您可以使用以下方法之一暂时停用分区存储:

  • 如果您以 Android 10 ( API 级别 29 )或更高版本为目标平台,请在应用的清单文件中将 requestLegacyExternalStorage 的值设置为 true

注意:当您将应用更新为以 Android 11 ( API 级别 30 )为目标平台后,如果应用在搭载 Android 11 的设备上运行,系统会忽略 requestLegacyExternalStorage 属性

意思是只要不更新到最新的 API 30,就可以继续在 /sdcard 下面随心所欲咯?

我感觉最终 beta 版都出来了,现在这样的文档反映的就是最终发布版本的行为。说老实话真的还挺失望的,从 Android 10 开始期待到现在就得到个这。


老了,折腾不动了。说点题外话,现在再也不是属于极客们的那个时代了。

9725 次点击
所在节点    Android
26 条回复
Numbcoder
2020-08-15 17:18:35 +08:00
别忘 Google 是一个广告公司,隐私都保护好了,怎么给你推广告,怎么提高广告的转化率
terence4444
2020-08-15 17:33:10 +08:00
从 Android 4.4 开始就看出来了,用户隐私选项扭扭捏捏不给用,到 5.0 才慢慢开始启用。

iOS 14 断了 Facebook 收集隐私的财路,所以它跟着 Epic 骂苹果呢。
Jirajine
2020-08-15 17:33:53 +08:00
@Numbcoder 你搞反了,越是广告公司越是重视(针对第三方的)隐私保护,信息只有他自己拿到,别人拿不到,利益才能最大化。
hoyixi
2020-08-15 18:12:03 +08:00
希望物联网在日常民用普及的时候,能有新一代操作系统诞生
weilaix
2020-08-15 18:12:38 +08:00
甚至在 Android11 回收站功能还是隐藏的。不知道 google 怎么想的
TVBG
2020-08-15 18:19:29 +08:00
Google Play 会有上架限制,只是我们这里就……
azh7138m
2020-08-15 18:56:26 +08:00
确实
前阵子差点被睿智移动 App 气死,一定要读手机状态,AppOps 也不好使
只能换 iPhone 了
mxalbert1996
2020-08-15 20:08:08 +08:00
毕竟要保证旧应用的兼容性,不可能这么快就一刀切的。
12101111
2020-08-15 20:12:07 +08:00
https://support.google.com/googleplay/android-developer/answer/113469#targetsdk
Android 9 ( API 级别 28 )

2019 年 8 月 1 日:新应用必须符合
2019 年 11 月 1 日:应用更新必须符合

Android 10 ( API 级别 29 )*

2020 年 8 月 3 日:新应用必须符合
2020 年 11 月 2 日:应用更新必须符合

google (似乎)和国内的各大应用市场达成协议,要求国内的市场同样遵守该策略,每年提升一次 target sdk
dinghmcn
2020-08-15 20:30:32 +08:00
那怎么办?毕竟要向后兼容,googleplay 上架新版本对 sdk 版本有限制的,国内无解
janus77
2020-08-15 21:48:46 +08:00
慢慢来的,直接砍掉是不可能的,历史包袱太多了,不说那么多旧设备,就算是应用本身也是一直在用老方法,如果你不给出兼容方案的话那些应用的正常功能可能也会受影响
楼上那些可能不太注意,国内的应用市场现在也在限制最低 sdk 版本了。这点做过上架的应该知道
WebKit
2020-08-15 22:30:18 +08:00
应用商店上架的应用有最低版本限制的,还记得去年的最低 SDK28 限制吗?
WebKit
2020-08-15 22:31:23 +08:00
@dinghmcn 国内跟 Google 同步的。去年所有商店集体要求最低版本 28
bclerdx
2020-08-16 00:15:01 +08:00
@WebKit 请区分 targetSdkVersion 和 minSdkVersion 的区别。
bclerdx
2020-08-16 00:16:13 +08:00
@12101111 这个是目标 SDK 或目标 API 的。
RikkaW
2020-08-16 03:39:27 +08:00
真的强制了用户反而会不开心,因为「让存储分开但是应用的行为不受影响」几乎是一件不可能的事情(

在 Android 10 DP2 的确「强制」了,但是旧应用怎么办呢,只能靠奇奇怪怪的让旧应用们「能用」(跟 Rikka 发明差不多,核心靠挂载,辅以各种特技)。DP2 的方案甚至还包括了「媒体存储返回假路径然后 hook IO 函数们在里面帮你用 content provider 」这样过于夸张的特技。但是,特技满天飞,还是有应用会坏掉。大部分的用户只会因为应用坏了而大叫,不会关心分什么区存储。

所以,从 Android 10 DP3 开始,Google 的方案就从「尝试改变老应用行为」变为「行为跟没存储权限几乎一致,靠 Google Play 对 target API 限制来缓步强制应用们适配」。( Android 11 最新的 beta 又加入了又给 sdcard 来一层 fuse,在里面悄咪咪变成用媒体存储,为了让没有脑子的人开发人开心真的是操碎了心)

觉得没什么好抱怨的,只在两个版本的系统就尝试了至少两种完全不同的方案并且真的确定已经是够快的了(
philipjf
2020-08-16 05:41:41 +08:00
新版本不给偷隐私,第三方就不兼容,第三方不兼容,硬件厂就不更新系统,新系统没人用也就废了,反正安卓用户万年不更新系统也没啥意见
Jerami
2020-08-16 07:16:43 +08:00
@Numbcoder 这跟推送广告没啥关系吧,要是真的想要广告利润最大化,谷歌首页都应该给你堆广告。
evilic
2020-08-16 09:51:02 +08:00
sdk 版本要求不得落后 1 年。所以没啥问题。
mgrddsj
2020-08-16 10:31:31 +08:00
@bclerdx #14 #15 然而题主提到的 Android 11 的存储限制就是基于 Target SDK 来限制的啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/698484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX