首页 > 编程知识 正文

安卓sd卡写入限制,安卓sd卡分区文件

时间:2023-05-05 09:36:12 阅读:223741 作者:1171

原标题:F2FS保你18个月不卡?手机文件系统相关科普

华为在mate9发布会上,标榜能保持18个月不卡,顿时引起轩然大波,至于什么技术给了华为如此宣传的底气,大多论调都集中在了它所采取的F2FS文件系统上。我们这次就来说说Android文件系统相关的知识,再分析一下这“18个月不卡”的宣传到底有何玄机。

文件系统:

文件系统这个词不常说,普通数码爱好者也不一定知道,但换成“硬盘分区格式”就明白了,我们更熟悉的FAT32、exFAT、NTFS、HFS+等其实都是同一层级的并列概念,不过文件系统才是更正式准确的名称,毕竟叫成分区格式总会和GPT、MBR代表的那些分区表格式相混淆。

具体来说,文件系统其实就是存储器内的数据组织形式,以及数据的索引寻址方式。更白话一点,就类似一本书,它的内容一般都是以章节或者章回来分节,按照逻辑顺序分页排列,并建立目录来实现部分标志内容和页数的对应来便于查阅,有些甚至自带书签,这种内容的排列和找寻方式,其实就是文件系统。

MTP、大容量存储模式和转移应用至SD卡:

说到这,倒是还可以先提几点困扰很多用户的东西,因为它们正好就和文件系统相关。

首先需要讲的是,文件系统其实可以算是操作系统的一部分,不同操作系统的文件数据存储器,都要使用其对应支持的文件系统格式,否则要么无法读写,要么只能作为一些非系统和应用关键文件的存储,比如音乐、视频、图片之类。

而现在,仍是以运行Windows系统的PC机占据桌面设备的统治地位,但在移动端,要么是基于Linux的Android,要么是基于Unix的iOS,这样桌面和移动端都需要不同且不兼容的文件系统,互相之间不能直接读写。因此,iOS设备插到电脑上,都是被读取为一个独立的便携设备,而不是一个U盘,再加上iOS自己的沙盒等特性,Windows自己只能把它当成相机看图片,想做些更高级的文件交换必须以iTunes为基础来进行。

Android这边相对复杂一点,上古时代,Android4.0之前,手机连到电脑上,都还是我们熟悉的大容量存储模式,文件传起来比现在的MTP顺很多,老用户们普遍都很怀念。但这也带来了一些问题,一是PC挂载了sdcard分区,导致手机无法正常读取文件,二是因为采用大容量存储,就意味着sdcard的文件系统必须和Windows相同,并不被Android本身足够兼容,所以data、system、cache等分区必须和sdcard严格隔离,从而被固定大小不能调整,这样闪存空间无法得到有效的利用,应用也无法装到用户分区,用户们也经常面临存储空间不足的问题。

而在Android2.2、2.3时谷歌曾采取过一些数据转移手段来转移应用数据到SD卡,也是因为文件系统的不同,这种数据转移能支持的非常有限,无法治本,唯一更好的处理方式只有在SD卡建立EXT4分区强行增加Linux内核可用空间而已。

谷歌最终的解决办法在Android4.0、4.1时代被推出和完善,也就是现在看到的MTP设备,PC通过手机来读取手机内文件而非PC自己直接挂载,这样整个闪存都可以使用Linux自己支持的文件系统,data和sdcard也可以“二合一”共享闪存资源动态调整解决数据空间问题,同时手机本身也不会失去对文件的读取。当然这样PC读文件就变得复杂,MTP传输效率低于大容量存储,各种失去响应、出错和驱动问题,也在所难免。

F2FS:

接下来我们就说说F2FS,这其实是和EXT4本质同级,都是Linux专属的文件系统。它的全名叫Flash Friendly File System,jzdkn对闪存友好,自称针对于NAND闪存有特别设计。最开始它是由三星电子在2012年秋季公布,开发者叫Jaegeuk Kim,彼时是三星员工,在后来被MOTO挖走,于是我们见到了用F2FS的MOTO X系列,去年又被挖到了华为,故而有了全线F2FS的EMUI5.0,号称流畅度提升20%。当然F2FS倒没什么版权纠纷,Linux体系下的东西自然遵守开源协定,只是既然有大神坐镇,可能会有点别的改进吧。

相比EXT4,F2FS理论上主要特性有两点,一个是能提升小文件的随机读写性能,再就是降低回收数据块,即碎片整理的开销,这在华为的宣传中也有所提及。不过也有缺点,一是需要Linux内核支持,二是占用存储空间更多,另外还有说法认为出错率更高并影响闪存的寿命,以及EXT4优化好了完全不怕F2FS。

当然刚才说的其实都有些虚无缥缈了,我们要知道的还是F2FS实际上比EXT4有多少优势,笔者查阅到了Phoronix上于今年8月3日发表的测试成绩(除了第一项都是越大越好),在Linux4.4-4.7内核下,F2FS优势在于两个规格的FS-Mark、BlogBench的读取以及DBench,其他项目3项小负,1项大败,剩下4项打平,可见整体上和EXT4算互有胜负,还谈不上有明显优势,更别说20%了,远不如换一块素质更好的闪存颗粒来得实在。

此外,我们发现,mate9的闪存也并非所有都是F2FS,diskinfo显示只有data分区(包括data和sdcard)使用了F2FS,而系统和缓存都还是EXT4,这样F2FS只会影响到第三方应用一段时间内首次读写文件时的速度,这只是使用流畅度的一部分而已。此外比较重要的系统和较小的缓存分区仍采用EXT4,似乎印证了F2FS出错率更高和占空间更多的问题。

真能18个月不卡?

说实话就凭借总体优势并不明显的F2FS,想在流畅度上搞出什么大新闻显然还是欠火候。当然华为的原话并不是F2FS就流畅,还有权限控制和吹上天的智能学习。权限控制不用说,大家都有成熟的体系,Android6.0还标配,而智能学习按照华为官方的解释其实就是前后台资源分配的问题,换成大白话就是杀挂后台应用的做法,看起来高大上,实际上也没什么大不了的,别人把后台管理做严格了,前台应用不会比它卡。

再讲下去,其实卡不卡的概念根本没有什么明确的定义和标准,每个人都有不同的标准。如果设为2K16全高运行,那很抱歉mate9现在的帧数就挺卡了,更别说18个月以后怎么样;而若是设为大意的黄豆日常使用,那同样抱歉,千元机都不卡,要是mate9过了18个月就变千元机那连mate8都不如,再说还有战了40多个月的骁龙801在一旁偷笑。

所以,多久不卡什么的,只是营销上吹的牛皮罢了,和3年前P6那句“PK iPhone6,领先友商一年”没什么区别,大家都懂。返回搜狐,查看更多

责任编辑:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。