谷歌被迫妥协,想动开发者的蛋糕也并不容易
下周三,谷歌2019 I/O开发者大会就将在其总部美国山景城的海岸线圆形剧场(The Shoreline Amphitheatre)举行。如无意外的话,此次活动中也将迎来全新的Android Q大版本更新,以及Pixel 3a系列中端机型的亮相。
不过在距离此次开发者大会的前一周,谷歌却宣布了一个可能让用户略感到失望的消息。考虑到大量开发者认为适配新机制的难度较大,因此一个在Android Q上极大程度改善使用体验的新特性“Scoped storag”,将会被推迟一年上线。
文件存储沙箱化与Android Q无缘
根据目前的相关信息显示,在即将发布的Android Q上,谷歌将会带来用户期盼已经的黑暗模式、桌面模式、更强力的隐私管理、系统级的屏幕录制、运营商SIM卡锁定、多任务处理功能Bubbles,以及新字体新图标形状等等众多的改变。
那么,这个所谓的“Scoped storag”是什么呢?事实上,这是谷歌原计划在Android Q上引入的全新文件存储机制,即文件存储沙箱化,能够对应用文件存储、访问、分享等行为,带来天翻地覆的变化。
简单来说,就是在启用这项新特性之后,通过第三方APP创建的文件夹,都只能被放置在一个个互不干扰的独立存储空间中,而无法像目前一样写入真正的存储目录,以实现真正的沙箱化。
存储沙箱化将让你的手机更私密、更安全
如果看到这里还是一头雾水的话,那么不妨对比一下目前现行的Android系统存储机制,就会很容易发现变化之处。Android Q之前,由于其系统底层是Linux,而Linux的机制是一个用户对应一个uid,再加上Android是单用户系统,而这里的“用户”就变成了一个个的APP。
在APP安装时,系统就会分配给其独立的存储区域以及uid,APP在虚拟机(ART)中运行,有独立的空间和资源,在这一过程中,ART和Linux对文件访问的控制实现了沙箱机制。当然,开发者可以给同样签名的应用(比如同一家公司的产品)配置相同的uid,以来实现资源共享。
但是Android在允许APP访问属于自己存储区域(/data/data/packagename/ ),以及无法访问不属于自己的私有数据的限制之外,手机上的外部存储(/sdcard)空间却是共享的,也就是所有的APP都能随意使用。需要指出的一点是,“sdcard”并非单纯指常说的SD卡,而是指ROM在只读型内存,以及不可见的内部存储之外的区域。
绝大多数Android手机用户应该都会遇到这种情况——以USB调试模式将手机连接到电脑上之后,在根目录上可以看到茫茫多乱七八糟的文件夹,删也不是,不删着实让人头大。而在使用了“Scoped storag”之后,所有的缓存文件都被强制限制在了 “/sdcard/Android/sandbox”之中,在sdcard界面的文件夹数量减少到原来的不到百分之五,此时自然也就会变得更加简洁。
APP只能在外部存储中访问自己的数据文件夹(位于/data/media/{user}/android),要访问音乐或图像照片等共享媒体文件,则必须请求用户给予特定这些用例的动态存储权限,获得MediaProvider查询系统的文件,并使用对应的Content URI来访问。
比如说在新机制下,微博想要读写外部存储的时候,系统并不会开放所有权限,而是只能让微博只能读写 “/sdcard/Android/sandbox/WeiBo” 。因此这时微博想要知道用户在隔壁的微信里干了啥,也就显然是无法实现的了。
开发者不买账,谷歌也没办法
看到这里,作为用户是不是觉得“Scoped storag”很好很给力,对于隐私保护和安全性都有明显的提升。但是抱歉,谷歌讨好消费者的努力,并没有得到开发者的欢迎,甚至不光口头抱怨,在行动上也阳奉阴违。毕竟这项功能将实实在在伤害开发者的利益,因此在目前的Android Q Beta 2上,完全适配这一功能的APP少之又少,而许多其他APP在测试版中呈现出的,就是疯狂闪退的现象。
开发者认为谷歌没有给他们足够的时间,来为StorageAccessFramework(存储访问框架)进行所有必要的更改,而不进行更改的后果,就是运行频繁报错。而且由于沙箱化存储影响了运行在Android Q上的所有应用程序,因此无论该APP是否真正针对Android Q进行开发,都必须进行更新。
事实上,不同于之前Android O/P上提供API LEIVE很快被开发者接受,文件存储沙箱化被其阳奉阴违也有着不少的原因。首先这一改变将提升开发者的工作量,同时让第三方APP的一些小九九再也不能实现。在新的存储机制之下,一款APP卸载之后就与iOS版一样是无残留的,之前的数据会一并清空,而这与目前许多APP,特别是国内应用“卸载后重装依然能够读取老数据”的设计思路完全冲突,毕竟将会导致用户流失率的提升,更不利于用数据吹牛。
再加上,如果Android也与iOS一样完成整个系统的沙箱化,无法随意访问外部存储,系统底层直接封杀越界读写,那么也就意味着某些心存不良的APP,此前随便看照片及通讯录等敏感数据的行为将成为历史。而开发者在此前长时间已经习惯了这样操作的情况下,突然这样改变自然就会导致戒断反应。
举个例子,之前某东金融就被传出在后台运行时,会自动保存用户的屏幕截图,抓取用户使用拍照功能拍摄的照片,就是因为保存照片的文件夹属于外部存储,基本是个APP都能访问。有的APP自律性比较高,不是自己的东西不看,但是有的下限就很低了,而“Scoped storag”就是为了杜绝这类现象,但是这不就挡着人家财路了吗?
越界读写消失的同时,也会在无形中让第三方文件管理类APP成为历史名词,毕竟都看不了其他APP都存放了些什么,自然也就无法进行自己的本职工作。
从这里就能看出,谷歌对于Android越来越不上心的原因,确实有在为用户考量。但是一方面是Android本身的各种先天性不足,另一方面谷歌在Android中的地位是盟主和大股东,因此尽管说话确实一言九鼎,可架不住自家小弟们各怀鬼胎,而这一回就很有一种“陛下何故谋反”的感觉。
毕竟,谷歌不像作为App Store和iOS唯一股东的苹果,能够对旗下的软件生态拥有说一不二的权力。有10086种理由直接封杀与自己竞争的第三方APP,开发者只能去找欧盟诉苦的情况下,谷歌就只能放任这些第三方APP与自己抢生意。
在谷歌另起炉灶的Fuchsia OS第一个“发布候选版本(release candidate)”,以及华为方舟编译器先后亮相之际,Android这艘大船还是不是能一直前进下去,恐怕现在谁都说不好了。
【本文图片来自网络】
推荐阅读: