看到 ://www.v2ex.com/t/789383 关于微信占用空间的讨论,刚好我手机里存储空间也告急了,想清理下,就查看了下微信的空间占用情况。
通过系统的 App 详情那里查看到 App site 为 379 MB 、User data 为 6.20 GBa,然后查看了微信自带的 Manage Storage 统计,Wechat Storage Used 为 5.8 GB,其中 Chat Histories 占用 1.8 GB 。
然后我粗略地统计了 /data/data/com.tencent.mm/
下各文件夹的占用情况(总共占用 3.9 GB,这里只列出占用比较大的目录)
42M ./cache
528M ./files
1.9G ./MicroMsg
120M ./app_webview_com_tencent_mm
17M ./app_tbs
11M ./app_webview_com_tencent_mm_tools
584M ./app_webview_com_tencent_mm_sandbox
97M ./app_tbs_64
186M ./tinker
37M ./app_x5webview
105M ./app_xwalk_2852
178M ./app_xwalk_2691
102M ./lib-0
3.9 + 1.8 ~= 5.8,基本符合 Storage 里的统计。
以下是 ./MicroMsg 的目录统计:
299M ./MicroMsg/expansions
1.2G ./MicroMsg/54******************************
1.1G ./MicroMsg/54******************************/image2
12M ./MicroMsg/54******************************/avatar
65M ./MicroMsg/54******************************/EnMicroMsg.db
88M ./MicroMsg/54******************************/appbrand
307M ./MicroMsg/webview_tmpl
6.8M ./MicroMsg/appbrand
1.5M ./MicroMsg/webcompt
40M ./MicroMsg/luckymoney
14M ./MicroMsg/CheckResUpdate
这里面在我的账号(54******************************
)下,发现 image2 这个文件夹占的比重最大,里面应该是一些图片。
将其 pull 到电脑上查看,发现其中的一个群组里的图片占多数,但将该群的聊天记录清除后,其占用大小依然不变。
1
dji38838c 2021-07-21 23:42:46 +08:00
聊天记录清除后,文件没有被删除吗?
|
2
zbinlin OP @dji38838c 这里我执行的是 Chat Info -> Clear Chat History 的操作,确实没有删除在 `./MicroMsg/54******************************/image2`里的图片,但好像还有一个在 General -> Manage Storage -> Manage 选择对应的联系人来删除的,不知道这个操作是否有效。
另外要注意下,这里的 `./MicroMsg/54******************************/image2` 是在 `/data/data/com.tencent.mm/` 目录下的,而不是在 `/sdcard/Android/data/com.tencent.mm` 下的。我觉得后者才是用户空间,前者应该是程序空间,但为什么在程序空间下会存储用户数据,由于不懂 Android 不是很理解。 |
3
bclerdx 2021-07-22 00:13:27 +08:00
关注此贴。
|
4
jim9606 2021-07-22 00:29:26 +08:00
@zbinlin 按照 Android 设计,/data/data 适合存放敏感数据,因为在所有 Android 版本中这个目录都只能由 APP 自己读写,没有不使用 root 越权访问的方法。/sdcard/Android/data 适合较大体积非敏感数据,可能位于可拆除的 SD 卡上,可能不受系统加密保护,且在 Android11 强制实现分区存储前,其他拥有存储权限的 APP 可以越权读写该目录,启用分区存储后,用户可以依然通过 adb 或 mtp 读写该目录。
|
5
jim9606 2021-07-22 00:37:04 +08:00 1
考虑到 /sdcard 可能不受加密和权限控制保护,微信选择将聊天记录放 /data/data 还算可以理解。另外放 /sdcard/Android/data 有可能会被别的 APP 偷数据或者乱改(“优化”)改坏,TX 还不好追踪是谁的锅。如果放 /data/data,只要没 root 那要么是系统自带的 app 干的要么是微信自己干的,好查 bug 。
|
6
imldy 2021-07-22 00:54:40 +08:00 via Android
webview 简直了
|
7
so1n 2021-07-22 00:55:03 +08:00 1
我记得之前的版本群里每收到一个小程序,手机就存一张小程序的照片,即使你没打开这个群,删除这个群也不会删除小程序的照片 巨恶心
|
8
zbinlin OP @jim9606 我之前还以为它聊天记录是加密保存在 /sdcard/tencent/ 或 `/sdcard/Android/data/` 下的呢 😅
|
9
sapphires 2021-07-22 01:57:38 +08:00 via iPhone 2
@so1n 是的,加了一个微信读书群,之前一段时间每天都要手动清理上千张完全相同的微信读书小程序封面,吐了。
|
10
derekwei 2021-07-22 08:25:41 +08:00
借用对领导干部说的那句话:当自觉净化“朋友圈”
|
11
yyysuo 2021-07-22 08:49:06 +08:00
因为是 log,并不是聊天记录,所以清除不了吧。
|
12
levelworm 2021-07-22 08:54:42 +08:00
微信我觉得就是程序员懒,反正什么都不清理堆在那里。
|
13
smdbh 2021-07-22 09:27:03 +08:00
搞清楚了,那 512g 手机怎么卖
|
14
zbinlin OP |
15
vmebeh 2021-07-22 10:20:53 +08:00 via iPhone
建议统计一下文件数量、log 文件分布
|
16
Mithril 2021-07-22 10:44:29 +08:00
|
17
dickinpit 2021-07-22 10:58:14 +08:00
期待进一步研究成果
|
18
dickinpit 2021-07-22 12:05:51 +08:00 1
明白了。这个 image2 臭名昭著,QQ 桌面版就有各种缓存图片,基本上每个用户的 QQ 文件夹里,它都是最大的,而且删聊天记录并不会把它一并删掉,而是需要手动时不时把这个文件夹整个删掉。现在看来,手机上的微信也是这个逻辑,只不过以前,image2 在内部存储里,用户不必 root 也能看到,也能像 QQ 一样手动删。但在某个版本之后,微信就把这些东西搬进了 /data/data,不 root 是找不到的。楼主既然能看到,不知直接删掉会怎样......
|
19
icyalala 2021-07-22 12:25:44 +08:00
同一张图片转发到多个群后,本地是指保留一份文件吗?
如果是这样的话,是不是要走一次 Full GC,Stop-the-World ? |
20
sobigfish 2021-07-22 12:38:21 +08:00
大多数开发商都这个怪毛病,一直缓存文件,过期清理? 您自己想起了再手动点吧!
|
21
0TSH60F7J2rVkg8t 2021-07-22 13:12:21 +08:00
@icyalala 我认为是多张,因为我发现,同一个视频,往其它群里转(长按,转发),有时候是进行的上传操作,而不是直接快传完成。
|
23
ZeroDu 2021-07-22 13:18:14 +08:00 1
刚看了下,微信一共占用 14GB ...
|
24
ccloudk 2021-07-22 13:23:09 +08:00 via Android 1
可能不舍得存服务器,但又想以后再查吧
|
26
FFFFourwood 2021-07-22 15:21:53 +08:00
真恶心 啥时候 国内能有 tg 之类的 app 替代微信 或者 ios 的 imessgae 普及全平台
前几天 mac 上微信小助手的也凉了 唉 |
28
zbinlin OP @vmebeh 不太清楚哪些是 LOG 文件,这里我把它们都列出来了,paste.ubuntu.com/p/RcCQwWDsJ2/
|
29
delectate 2021-07-22 22:43:15 +08:00 1
我有两个问题:
1 、腾讯的服务器带宽难道廉价到根本不花钱吗?转发这些细碎的文件,难道不占用服务器软硬件和带宽资源吗? 2 、对于客户来说,大量碎片文件,直接降低了 flash 的 io 性能,而且占用了这么多存储,难道不是硬件厂商的合谋? 解决方案其实很简单啊,要么给按日期清理的工具,要么删会话则删缓存,至少 qq 都提供类似的工具啊!而且文件都是一样的 md5,也许有心人可以写一个 md5 判重再做软链的脚本,无法挽救细碎的小文件,至少挽救一下可怜无辜的存储空间吧。 综上所述,我觉得,其实只是单纯的,腾讯的程序员水平太差罢了! |
31
vmebeh 2021-07-23 09:40:26 +08:00 via iPhone
疼讯:这么多小文件删起来写入放大谁的手机受得了 🐶
|