前言
因为最近设备的存储满了,所以打算清一波存储,但是在清除存储的时候发现了一些地方,可以释放出很多空间。开始清除之前手机的内存占用是246GB,清除之后占用变成176GB。下面就具体分析一下从哪些地方可以抠出内存。
微信和QQ
首先你手机占最大存储空间的应用肯定是微信和QQ,其次是抖音这些。微信和QQ占用内存比较多是因为存在大量的本地缓存,其中占比较大的基本是图片和视频,如果是经常喜欢发表情包或者短视频,那你微信所占用的空间就更多。
现在也有很多类似于微信专清等工具,或者自己在文件管理器中去清除缓存。如果希望保留历史记录,可以将这部分的缓存导入到自己的其它硬盘中,再删除。从这部分中能省出的内存大概有几十G。
相册所占用内存
如果你是一个热爱拍照的人,手机的拍照质量又比较好,基本每张照片都在10M左右,当存在大量的照片时,也会占用较大的一部分内存。建议可以把照片放到其它硬盘中,如果你希望手机也可以存有这些照片来达到随时都能看的目的,建议可以将原图先存到其它的硬盘,然后对图片进行压缩,手机中只存进行压缩后的照片。
我的一次比较真实的经历就是当时去看演唱会,基本整场都在录制视频,到最后结束的时候导出视频发现总共占用了80多G的存储。
Android开发相关的无用内存
比较真实的经历就是以前Android没做分区存储的时候,开发应用有时候会把缓存写到外部存储里面,卸载应用后导致这部分的内存没删掉,长期积累下来也有占用几个G的空间,但是自从分区存储提出之后,基本没有这种情况了,现在的机子基本也都已经是Android 10以上。
这次我请存储的过程中发现有个东西也是占用了较大的存储空间,没错,就是Leakcanary,在Download文件夹中,每个leakcanary文件占用几到几十MB的空间,把这些无用的leakcanary文件删除后也能剩去一部分空间。
隐藏文件
这才是我这次最想说的地方,有些文件是隐藏文件,导致你在手机的文件管理器中查看的时候是看不到这些文件,如果没认真看,就会放任这些文件一直存在占用内存。
我本次清空存储就是发现了QQ浏览器占用了我快60个G的内存,而且这些文件都是隐藏文件,在手机文件管理器中没有明显的展示出来。
当时我在看Download的占用空间的时候发现了几十个G的占用,然后简单看内部的文件和子文件夹没有发现比较明显的问题,这时候我就想用adb去一层一层查看到底是哪个文件夹占用大空间。
首先这种方式对于Android开发来说就不用多解释,如果是非开发人员,首先需要打开手机的开发者模式,然后电脑要有adb环境。
手机连接电脑之后adb devices先查看是否能正常连上设备

然后shell进入设备,当然也可以每次都执行adb shell命令,我比较习惯进入设备去执行命令

因为我发现是Download有问题,所以我们这里进入到这个文件夹

OK,从现在开始,我们改用du命令去查看,查看文件夹内存一般使用du会比较方便一点,而且一般的手机都会支持du
这里使用以下命令去查看这个文件夹总暂用内存
bash
du -sh .

看到这里占用57G
我们需要打印各个文件夹中的内存占用,这时候需要使用以下命令
ini
du -h --max-depth=1 .
注意,一些手机对"--max-depth"是识别不出的,这时候用下面的命令也能实现一样的效果
bash
du -h | grep -v ".$"
这时候能看到明显的占用地方

此时看到指向了QQ浏览器,而且是QQ浏览器中的视频(这里在手机文件管理器里面是不会显示出来的),我感觉就是QQ浏览器中以前下过的所有视频都缓存起来没彻底删掉,就算在浏览器中有操作过删除,但是还是会存着一份在这里,这几年下载过的电视剧和动漫,全部都在,所以才有57G的大小
我这里把这部分的存储清空之后

可以看到瞬间腾出了57G的内存
PS: 如果你的操作没像我一样执行adb shell去进入设备,那就需要每次在输入命令时都加上adb shell,例如
bash
adb shell du -h | grep -v ".$"
总结
不看不知道,一看吓一跳,在设备中有些内存的占用是不会明显的体现出来,需要进行一些分析去找出这部分的内存去删除。比如我这里的QQ浏览器在设备的内存占用中只显示了它占用7G,结果却又57G无用内存。