cundong / SmartAppUpdates

Android应用增量更新

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

这个差分包的前提是 混淆文件不改动吗?

shenxiaolin opened this issue · comments

这个差分包的前提是 混淆文件不改动吗?
如果混淆文件改动了,那么混淆出来的Mapping 文件也会与旧的apk 文件很大不同,这个也可以使用com.cundong.utils.DiffUtils 来找到差分包吗?
原理是什么,可否解释下,谢谢!

commented

知乎有相关回答,如果两次版本的混淆结果差别很大,应该还是可以diff的只是patch包会大一些。

2)混淆问题
现在大部分应用都会对自己做混淆,一方面是起到压缩安装包效果,另一方面是起到保护作用,避免代码逻辑被反编译。
混淆带来的一个坑就是同一个类,在不同时期,混淆的文件都不一样了。
比如Test.java
在1.0版本
Test.java -> a.java
在1.1版本
Test.java -> b.java
从而导致生成的patch包都非常大(a.java和b.java在程序的眼里是两个不同的文件)。
因此,我们在做混淆时,一般都要确保前后版本混淆一致。但外部应用,由于不受控制,所以,没法保证。(小tips:从这里看出做开发时,混淆前后一致的重要性)

作者:Jianjian Xiao
链接:https://www.zhihu.com/question/51888647/answer/127983295
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。