前言
应用安装包大小对应用使用没有影响,但应用的安装包越大,用户下载的门槛越高,特别是在移动网络情况下,用户在下载应用时,对安装包大小的要求更高,因此,减小安装包大小可以让更多用户愿意下载和体验产品。
常用应用安装包的构成,如图所示:
![](https://img.haomeiwen.com/i3358237/4d27902f44d2f8ee.png)
从图中我们可以看到:
-
assets文件夹。存放一些配置文件、资源文件,assets不会自动生成对应的 ID,而是通过AssetManager类的接口获取。
-
res。res是resource的缩写,这个目录存放资源文件,会自动生成对应的ID并映射到 .R文件中,访问直接使用资源ID。
-
META-INF。保存应用的签名信息,签名信息可以验证APK文件的完整性。
-
AndroidManifest.xml。这个文件用来描述Android应用的配置信息,一些组件的注册信息、可使用权限等。
-
classes.dex。Dalvik字节码程序,让Dalvik虚拟机可执行,一般情况下,Android应用在打包时通过Android SDK中的dx工具将Java字节码转换为Dalvik字节码。
-
resources.arsc。记录着资源文件和资源ID之间的映射关系,用来根据资源ID寻找资源。
减少安装包大小的常用方案
-
代码混淆。使用ProGuard代码混淆器工具,它包括压缩、优化、混淆等功能。
-
资源优化。比如使用Android Lint删除冗余资源,资源文件最少化等。
-
图片优化。比如利用AAPT工具对PNG格式的图片做压缩处理,降低图片色彩位数等。
避免重复功能的库,使用WebP图片格式等。 -
插件化。比如功能模块放在服务器上,按需下载,可以减少安装包大小。
网友评论