Android proguard启用APK大小增加添加新库

时间:2017-10-13 06:24:32

标签: android apk proguard multidex classyshark

我们的APK中有几个依赖库,并启用了proguard和multi dex。 我们有3个dex文件 我们打算将APK尺寸尽可能小。

我们目前正在尝试整合“新广告SDK”。

在整合时,我们看到包含依赖库后我们的APK大小异常增加。

在示例应用程序中,库的内存占用量大约为 ~280 KB 。但是当我们在我们的应用程序中添加相同的依赖项时,我们的apk大小会增加 595 KB 。他们的计划规则保留了他们所有的课程。

在android studio和classyshark中使用APK分析器进行调试时,我们观察到我们的dex文件中其他包和类(如facebook,google,glide等)的大小正在增加。

但是,他们的方法计数保持不变。这可能只意味着程序压缩受到影响。因此,APK尺寸 增加 就像 280 KB(广告sdk)+ X [315 KB] 我们正在尝试消除APK大小不必要的315 KB增加。

投资造成这种异常增加的原因的任何线索都将受到赞赏。

请分享任何可能有助于此方案的dex选项/ proguard优化。

更新 有问题的SDK的proguard规则如下所示:

-keep class com.example。** {*; }

-dontwarn com.example。**

谢谢。

1 个答案:

答案 0 :(得分:0)

我可以从你的帖子中推断出很可能是作为新的lib配置的一部分在proguard中添加的一些规则导致lib,例如facebook,google的代码缩减。很难避免第三方sdk规则,但是如果您的应用尚未采用其他方法,您仍然可以缩小您的apk。如果您的图形资源仍然使用PNG将它们更改为webP,则会减小apk的大小。

同时检查公共lib是否作为广告sdk的一部分存在。一旦我们在我们的应用程序中看到两个版本的google play服务,我们就不得不通过gradle config排除sdk依赖项中存在的那个版本。