Android性能优化----减小Apk大小

  -----关于apk的构成监控,Android studio提供了一个工具APK Analyser,可以拆分你apk的组成部分。

打开方式已知有3种:

1.直接将apk拖拽到Android studio的编辑页面
2.通过Build->Analyzer APK,选择想分析的apk文件
3.通过Project视图,选择双击apk文件

下面是我的实验部分。

我apk初始大小为:40.4MB

然后分析结果:

Android性能优化----减小Apk大小_第1张图片

通过上图发现。Assets资源文件太大的问题,其次是resclasses.dex 和resources.arsc文件。

Assets存放是的资源文件,比如html,json或者gif文件等;
res存放的是res文件夹下的文件,比如布局文件,图片文件等;
resources.arsc存放的是value下面的文件,比如string,styles等文件;
classes.dex 存放的是可以理解的以dex文件格式编译的类(懵懂).


分析完这些,接下来就是瘦身了。

1.先从Assets开始
删除不必要文件,因为其中有一张gif文件(27.9M),所以瘦身效果不大。
这次的大小为40.2M

Android性能优化----减小Apk大小_第2张图片

2.接下来从res和 resources.arsc文件开始

①可以手动删除res文件下无用资源,这样肯定是最麻烦的。
所以可以通过下面的方式来查询无用资源,然后进行选择性的删除:
打开"Analyze" 然后选择"Inspect Code…",范围选择整个项目,然后点击"OK"。然后就能看到一些无用资源。
②通过代码实现在构建过程中移除无用资源


release{
  //...
  //移除无用的resource文件
  shrinkResources true 
  //...
}
defaultConfig {
    //... 
    //保留指定语言资源,移除其他默认资源
    resConfigs "en"
    //... 
}

③减小资源文件中图片大小
一般资源文件太大,很有可能是png图片太大,可以试着将png文件减小,然后再次存放。

最后因为一些png没有进行压缩处理,效果还是不大。
大小为36MB

Android性能优化----减小Apk大小_第3张图片

3 最后是classes.dex 文件

1.可以设置 minifyEnabled 为 true,混淆将会移除所有未使用的方法、指令以减小 classes.dex 文件。
2.删除一些未使用的第三方库引用和删除重复第三方库的引用,来减小该文件大小。
3.做到一个功能点,用一个三方库来解决。

最后我的大小为35.7M


总结

最后大约减小了5M左右。

大约是以下的点的原因,我没有减到理想程度:
1.gif文件太大,这个资源可以放到服务器上,然后进行缓存加载来进行显示;
2.res资源文件有点大,主要是因为图片资源有些未压缩;
3.最后是因为classes.dex 有些库的多余引用问题,因为没有仔细查找;

                                                 

                                最后, 可以添加我QQ[2019793673]我们可以一块交流。

你可能感兴趣的:(android,减小APK)