|
提到微信,网友是又爱又恨,日常沟通已经彻底离不了,但体积却臃肿不堪,动不动就占用三四十GB的空间,成为手机中占内存最大的APP。其实,最初的微信确实是“小而美”的,在2011年1月发布的微信1.0版本,安卓APK安装包的体积仅457KB,还没有一张照片体积大。已经能够实现微信发消息这个核心功能。) v$ V! K! O/ g' o' \* b; }
解压发现,微信8.0.24版本APK共包含12639个文件,而微信1.0版本只有199个文件,该UP主调侃:“新版微信有98%的文件都是垃圾。”
3 G/ U0 M5 ^% a: K微信8.0.24中,文件夹主要有:) u; Z+ j6 F8 m' P% x
assets文件夹:体积78.4MB,里面装着微信的资源文件,比如自带emoji表情、字体、收款音频、微信电话铃声等等。7 i- i+ J% q3 f5 }4 Q
lib文件夹:体积337MB,里面都是第三方动态库,一共157个库,比如解码、解压缩等,塞入的功能越多,需要调用的库也就越多,安装包体积也就越臃肿。而在微信1.0版本中,只有一个库,体积仅127KB。& R1 U: @9 C9 [+ `" B
META-INF文件夹:体积2.1MB,里面存储了开发者的数字签名
0 q8 G: i4 @& R- qr文件夹:体积12.8MB,里面存放着APP资源库,还有杂七杂八的素材图片。5 A3 Q3 z7 T9 M* N; [
resdec文件夹:体积0MB,是个空文件夹。: n) O/ C; l, R
此外在根目录下还有17个文件:* v5 I5 t# e& n, r
AndroidManifest.xml,是配置文件
4 `! o) E! Z6 f+ M3 S( C0 K, e8 ?3 _baseInfo.dat,记录着classes.dex文件的MD5值
: c: l; c6 H# C' rresources.arsc,记录着文件之间的对应关系6 `# Z& X: r" S9 E5 }, S7 |
此外,还有14个classes.dex文件,也就是微信编译后的程序本体。新版共占用161MB,而初代只有1个classes.dex文件,体积仅256KB。11年暴涨644倍。
5 |0 y- @. o6 N4 [继续逆向工程后,该UP主表示,微信中真正实现聊天的代码可能只占0.1%,大部分代码用来运行小程序、视频号等功能,“微信占用的99.9%空间都是存放的垃圾功能和资源。”6 h g! `/ F, E- v z$ d/ u
( X( t; n7 \* T' L/ J) s T4 D4 q/ l! f; D
( j. B2 I* z3 I) Y2 l
9 O6 p/ s" A B0 Y/ Q2 m: Z) w |
|