DexGuard、Proguard、Multi-dex,dexguardproguardProguard与DexGuard是同一团队开发的
I. 区别表
Proguard
DexGuard
备注
免费
收费
DexGuard GuardSquare
一般代码混淆
代码混淆力度更大 + 资源混淆 + so加壳等
-
不需要multi-dex
自带multi-dex扫描
-
资源混淆?
首先, 所有static final的都会直接预编译,代码中都是资源ID,资源混淆只和 resources.arsc (资源ID、string、路径映射等)、资源路径、资源文件名 有关。
资源混淆可能的坑?:
Resources#getIdentifier估计废了,记得白名单。
Proguard也想要资源混淆?:
试试这个: AndResGuard
为啥国内很少用DexGuard?有坑?
付费
国内文档少,而且配置起来会比Proguard复杂一些,细节多些。
由于需要做非常重度的混淆,因此由自带multi-dex,更多细节问题
第三方库用该混淆可能会有难以预料的坑,特别是国内的,基本上保证Proguard没有问题给出文档,Dexguard基本都没有测试过(比如以前使用这个木有关注到umeng既然有些资源采用反射取,官方也没有给明,完全是盲人摸象等)
II. Multi-dex
为啥有这梗
可以先参看: ART、Dalvik