代码混淆是每个java程序猿的必修课,但是为项目写混淆配置文件是一件痛苦的事情,关键字比较多不太好记忆,而且一旦配置好很长时间内都不需要修改,也许当时记得,过后慢慢就忘记了。那不配置混淆行不行呢?答案肯定是不行的,因为你要面对虎视眈眈的同行还有行业内的各种黑暗的利益链条,不混淆就发布几乎等于将自己的工作成果拱手让人。那你可能会问那我混淆了就可以确保万无一失了?我只能残酷的告诉你:NO!虽然说混淆不能保证你的代码的100%安全但是这是通往代码安全之路的第一步。下面来讲解如何为我们的项目快速的配置混淆。Keep Options 保持不变的选项,简单点说就是保持哪些类或者哪些元素不被混淆,“keep家族”就是帮我们做这件事情的。
-keep [,modifier,...] class_specification
保持class_specification规则;若有[,modifier,...],则先启用它的规则
用法示例:
#不混淆实现android.os.Parcelable的类
-keep class * implements android.os.Parcelable
-keepclassmembers [,modifier,...]class_specification
保持类的成员:属性(可以是成员属性、类属性)、方法(可以是成员方 法、类方法)
-keepclasseswithmembers [,modifier,...] class_specification
与-keep功能基本一致(经测试)
-keepnames class_specification
可以说是 -keep,allowshrinking class_specification的简化版