文章目录
Java 混淆
ProGuard:工具能够移除无用代码、重命名类、字段、方法从而达到压缩、优化和混淆的目的
- 压缩:检测和删除没有使用的类、字段、方法和属性
- 优化:对字节码优化、移除无用的指令
- 混淆:使用 a、b、c、等无意义的名称重命名
- 预检:主要是在 Java 平台上对处理后的代码进行预检
要通过 ProGuard 启用代码压缩,请在 build.gradle 文件内相应的构建类型中添加 minifyEnabled true。
请注意,代码压缩会拖慢构建速度,因此您应该尽可能避免在调试构建中使用。不过,重要的是您一定要为用于测试的最终 APK 启用代码压缩,因为如果您不能充分地自定义要保留的代码,可能会引入错误。
Q:混淆为什么要保留类名或方法名
- 让 C/C++ 程序可以通过 jni 使用对应的 java 方法
- 四大组件由于在 AndroidManifest.xml 里面注册了、所以需要保留
- R 文件混淆会导致引用错误
ProGuard 基本命令
|
|
资源混淆
|
|
参考: