【问题标题】:Android apk patch file to large after use d8 dex compiler使用 d8 dex 编译器后,Android apk 补丁文件变大
【发布时间】:2019-09-06 09:39:15
【问题描述】:

我用bsdiff对d8 dex编译器编译出来的apk打补丁,但是补丁文件太大了,比原来的apk文件大了60%左右。

一开始我使用 gradle 插件 3.0.1 和“multiDexEnabled true”,apk 包含大约 60 到 70 个 dex 文件。而且补丁文件很小,大概0.7M左右,而我的apk大小一直是8M左右。

几个月前,我将 gradle 插件更改为 3.1.2。然后发现我的apk原来是7.2M,apk里面只有2个dex文件,但是patch文件增加到4M!

我认为是 d8 dex 编译器造成的。

有人知道如何使用 d8 dex 编译器保存 60 到 70 个 dex 文件吗?因为 bsdiff 可以用许多 dex 文件修补 mutch 更小的补丁文件。

或者有没有比 bsdiff 更好的补丁工具?

【问题讨论】:

    标签: android patch dex


    【解决方案1】:

    D8 使 dex 字节码在第一次时变化更多。

    你可以更改一些代码并再次制作一个apk,然后你可以使用bzdiff比较它们。我认为他们应该改变小。

    【讨论】:

    • 我已经试过了,我只加了一行代码,用d8编译器又做了一个apk,补丁文件还是太大了。
    • 当然。我的意思是你这次使用d8制作apk,它会因为dex改变而改变很多。但是如果你下次制作apk,它会改变很小。如果你改一行代码,让apk调用apk1,那么你可以改两行代码,让apk调用apk2,比较apk1和apk2,应该改小了。
    猜你喜欢
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多