为了便于大家理解,文章中的“内存”均指手机的机身内存(即ROM,目前的机身内存基本是32G起步),而不是运行内存(RAM,大多数手机的RAM为3G/4G。)
微信小程序会占用内存吗?这个问题暂且一放,先来聊聊另一个话题,相信很多人收到过类似的消息:
这是一周君刚才在微信随便一搜找到的一条聊天记录,相信一些人不只收到过,还发送过。其中,一些朋友认为删除那些“多余”的好友能释放手机内存。
“又删了20人,节约94M空间”
“今天被清了,你也清清吧”
对此,一周君只想,
好吧,什么也不想。
其实,微信好友数量和手机内存空间并没有关系,微信占用手机内存空间,主要是聊天信息、微信朋友圈缓存文件等。也就是说,如果你看到手机内存中,微信占用了大量的空间,那么不是好友数量太多,而是聊天信息太多了。
若真想清理垃圾空间。可以安装第三方清理软件或者使用微信自带的清理功能。
小程序
下面进入主题,微信现阶段大力推广的号称“用完即走”的小程序,会不会占用内存呢?
一周君对小程序的理解是,它好像一个网页链接,要用的时候点开它,会跳转到相应的“网页”,在浏览的时候会产生一些缓存,但其本身占用的内存几乎可以忽略。所以,一周君卸载了一些不常用的并且有自家对应小程序的软件,的确释放了不少手机内存。
查阅了相关资料,和一周君的想法差不多,小程序的确可以节省“下载空间”。
一周君亲测了一下。为了排除其他用户数据的干扰,一周君动用了自己不常用的一个微信号……最大程度确保微信占用的内存来自小程序。
添加10个小程序占用了9M的内存空间,相比于动辄每个十几M的app,还是比较节省空间的。
微信团队限制了小程序的体积: 只有 2 MB 以内的小程序,才能提交到微信审核。(最初的限制是1M。)
虽然小程序自身占用的空间较小,但其在运行过程中也会产生缓存。进而
那么小程序占用空间的本事有多大呢?
一周君使用了其中一个阅读类小程序,翻看了十几篇文章,然后查看微信占用的手机内存情况,大家请看结果。
看来,使用小程序的过程中的确会产生缓存。
其实,也不用“OMG!”,腾讯在小程序开发的规范文档中规定了一个小程序的数据缓存上限。
但根据实际的使用体验。一个小程序产生的缓存好像不止10M,一周君最初认为自己的测试不严谨,换了其他的小程序,有的单次使用1分钟产生的缓存还是超过10M,当然,有的则在10M以内。
对于这样的问题,在一些问答平台上提出了疑问,可惜没人理……
写此文之前,咨询了一个做程序员工作的哥,得到的回答让我有点失望。他的意思是尽管微信做出了规定,限制缓存的代码也不麻烦,但总有开发者不按照规范来。我起初无法接受这样的解释,认为微信方面会把好关,但在翻看了小程序开发文档的“运营”部分时,仔细查看了相关的审核标准,并未找到对于“缓存”限制的审核项。
所以,一周君的理解是,对于开发中“缓存”这个问题,微信方面可能是“只立法而不执法”。
对于小程序的缓存,微信自带的清理和带有“微信专清”的某清理软件,均未能对其进行清理,
查阅资料,可以通过删除小程序释放其缓存。这样做会将对应小程序的本体、本地数据以及权限偏好删除,但不会删除小程序服务器上的数据。
总结一下,小程序几乎不占用“下载”空间,使用过程中会产生缓存进而占用一定的空间,各种小程序的质量很难保证。至于如何清理缓存,可以通过删除小程序或者通过手机的应用管理手动删除。相信微信会给出更好的解决方案,期待第三方清理软件能更新相关功能。
参考资料
《小程序会占用手机存储空间吗?| 小程序问答 #21》
http://www.sohu.com/a/159778644_603236
《实测,微信小程序占多少内存?或许真没你想象中那么小!》
http://www.360doc.com/content/17/0110/09/33862225_621458612.shtml
《小程序开发者手册》
https://mp.weixin.qq.com/debug/wxadoc/product/reject.html#36-UI-规范