安卓6.0还是没有解决thumbdata体积无限扩张的问题?
wp7吧
全部回复
仅看楼主
level 14
ATI🌌
楼主
作为一个村通网,前几天刚从4.4.4升到6.0.1,以为没有这个问题了,结果今天用es一扫***居然还有
2017年07月18日 14点07分
1
level 14
ATI🌌
楼主
粘一篇文章,告诉大家这个bug确实是bug
2017年07月18日 14点07分
2
ATI🌌
https://zhuanlan.zhihu.com/p/22893192
2017年07月18日 14点07分
level 14
ATI🌌
楼主
问题分析:
为了找到根本原因,我找了个安卓4.0的源码包,从18万个文件里面定位到了构造和使用这个文件的一个java脚本,/frameworks/base/media/java/android/media/MiniThumbFile.java,这里面的代码就是问题的根本所在。
解开问题的关键其实只需要看其中一句代码“long pos = id * BYTES_PER_MINTHUMB”,写过程序的人可能很容易猜出来,这句代码的意思是“缩略图起始位置=图片id*每个缩略图的长度”。这句代码就揭示了上面几个问题的根本原因:
这里的id是安卓后台数据库里的文件编号,是数据库的自增主键,随着使用时间的增加,系统中不断有新文件产生,那么新文件的id会越来越大,无论是否删除旧文件。
BYTES_PER_MINTHUMB是每个id在thumbdata里面占用的固定空间,无论这个id对应的文件是否是图片(是图片则存储缩略图相关信息,剩余的空间用0填充,不是图片则全用0填充)。
pos是缩略图在thumbdata里面的偏移量,而thumbdata文件的大小就等于图片文件的最大id(或者全局最大id,没严格验算过)乘以BYTES_PER_MINTHUMB。按附件程序中每个id占10000Bytes来计算,如果系统最大文件id是100000,那么thumbdata大约有950MB。
因此,随着新增图片id的不断变大,这个文件会越来越大,并且其中非图片id对应的位置是空值(即使是图片id,末尾通常也留有大量空白空间),大量的空值使其体积比手机里所有图片加一起还大,系统也很容易通过现存的图片来重构这个文件。
这么做的目的应该是为了快速定位缩略图信息,但是可能股沟的工程师没想到现在的手机里会有那么多的文件。
2017年07月18日 14点07分
3
level 14
ATI🌌
楼主
关键问题是这个文件***直接删除不管用,之前占的空间永远无法恢复回来,太霸道了
2017年07月18日 14点07分
4
level 14
亨利十一世
安卓系统本来就是一个破洞百出的东西,Google从1.x到现在就一直在修补,要想这个系统完美除非彻底推倒重来
2017年07月18日 15点07分
7
冰冷的赤道
苹果也是,极为先进的ibug系统
2017年07月19日 00点07分
lhl路路lhl
他们大概还不懂基层漏洞和小bug之间的区别,虽然我也不会表达,但是我意会了
2017年07月19日 02点07分
level 14
梵宇斯离
凡人看不懂,另外我在意的是7.0以上有这个问题吗?
2017年07月18日 15点07分
8
ATI🌌
没有7.0,不知道啊
2017年07月18日 16点07分
lhnyfree
7.0表示没有
我经常清,会看看大小
2017年07月19日 04点07分
level 16
金毛评测犬
2017年07月18日 16点07分
9
ATI🌌
没我的多,最丧病的时候z3 14g内存占了一半还多
2017年07月18日 16点07分
吖水💦
删了就可以啦
2017年07月19日 00点07分
ATI🌌
@吖水💦
删掉以后占用的空间能恢复吗
2017年07月19日 00点07分
level 14
真·解読不能
我的只有275K,估计是图片太少了
2017年07月18日 16点07分
10
level 9
秋末栗子甜甜的
设置成只读可以吗?
2017年07月18日 16点07分
12
ATI🌌
可以用二楼链接里那篇文章的方法
2017年07月18日 17点07分
level 13
xyf960601
那怎么办?
2017年07月18日 16点07分
13
ATI🌌
可以用二楼链接里那篇文章的方法
2017年07月18日 17点07分
level 14
最强四流高手
汤不热的data文件吗,直接卸载不就行了
2017年07月18日 16点07分
14
专业WM人士
哈哈哈哈哈哈哈
2017年07月19日 04点07分
lovekymjinsha
2017年07月19日 05点07分
level 11
P0D0Q
缩略图缓存吧 这玩意删了貌似会对相机有影响 我自己前面几个手机删过几次相机就闪退打不开了
2017年07月18日 16点07分
15
吖水💦
三星note4表示删除了没影响
2017年07月19日 00点07分
冬魔王小老弟🐶
一直都删目前没发现任何问题
2017年07月19日 01点07分
小窝喔头
我删过,相机打开,奇卡无比,开一会才恢复正常。
2017年07月19日 02点07分
level 14
culchur
安卓问题真的…
每个大版本修复了又有问题
2017年07月18日 16点07分
16
1
2
3
尾页