集成环信后APK瘦身之旅

前言

apk瘦身作为性能优化的一部分,它的大小决定安装的时间与占用的内存,进行针对性的瘦身也能够提高用户体验,下面我来讲一下我在集成了环信3.xSDK是怎么将暴涨的apk降下来的。(PS:集成环信后apk体积大约增加了18M左右)

1.删

使用Android Studio我们可以通过Lint删除没有用过的资源: 选择inspect code…

集成环信后APK瘦身之旅

项目中集成了环信SDK,看个人项目的需求来,如果不需要全盘使用它提供的所有功能,那我们可以对此进行选择。考虑到开发者需求不一样,在下载的 SDK 中,环信提供了两个不同的 jar 包:

  • 一个是 libs 下带实时语音功能和实时视频功能的 jar 包和 so 文件。
  • 如果你不需要实时语音、实时视频功能,那就直接用 libs.without.audio 文件夹下的 jar 包及 so 文件。

像我的项目中仅仅只需要用的环信的聊天功能,而我偷懒,通讯录也是直接套用的环信的,O(∩_∩)O~
我们可以看到环信的EaseUI 下面的lib里的jar包其实有很多可以去掉的,这个我就不过多赘述,根据你们的需求去删吧。

集成环信后APK瘦身之旅

删完多余的jar包,其实我们还可以把从环信Demo那拷过来用的多余的文件(activity、adapter、fragment…)去掉,还有资源文件尤其是图片。毕竟我们只需要它三个东西:聊天列表、会话窗以及通讯录。这些我也偷懒不一一写上来了,如果不知道可以私信。

2.压

我们的项目打包成apk时,图片占用了大部分体积,所以图片的优化首当其冲。我使用的是TinyPng在线压缩工具,压缩前主要图片的大小(8.65M),弄完以后现在不到2M了。压缩的时候碰到个问题,.9图片我转出来后as报错,说是什么left像素不能透明,找了解决方案没找到,知道的伙伴可以留言指导一下哦。

这是app下的
集成环信后APK瘦身之旅
这是环信easeui下的(这是删完以后压缩的)
集成环信后APK瘦身之旅
效果是不是很可观啊,而且压缩后的图片质量也很好,完全满足应用所需的质量要求,项目中一些简单的图片也可以使用SVG矢量图;

3.混淆

-keep class org.xmlpull.* {;}
-keep class com.hyphenate.* {;}
-keep class com.hyphenate.chat.* {;}
-dontwarn com.hyphenate.**
-keep class org.jivesoftware.* {;}
-keep class org.apache.* {;}

2.0.9后加入语音通话功能,如需使用此功能的api,加入以下keep

-keep class net.java.sip.* {;}
-keep class org.webrtc.voiceengine.* {;}
-keep class org.bitlet.* {;}
-keep class org.slf4j.* {;}
-keep class ch.imvs.* {;}
-keep class com.superrtc.* { ; }

好了,到这里就差不多了,环信还是坑比较多的,大家有什么心得欢迎分享出来,一起进步!