android 混淆进行代码去重

Android 中开发SDK已经集成了ProGuard工具,开发者可以从SDK目录下的\tools\proguard目录中进行查看。并且使用gradle编译时已经可以根据配置进行混淆。

ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器。它可以检测并删除未使用的类,字段,方法和属性。它可以优化字节码,并删除未使用的指令。它可以将类、字段和方法使用短无意义的名称进行重命名。

简单的理解,就是一种映射以及一些优化;而这里讲到的去重,则是改变映射规则,同一个类,映射成两个功能相同但代码显示差别很大的类

首先看一下下面:

android {
    ......

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'main_dic.pro'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release
        }
    }

    ......
}

minifyEnabled true:进行开启混淆

proguardFiles:设置混淆规则;可以多个规则文件

getDefaultProguardFile('proguard-android-optimize.txt'):sdk中带混淆规则

在配置文件中,可以进行下面配置,进行配置字典,

-obfuscationdictionary dic.txt
-classobfuscationdictionary dic.txt
-packageobfuscationdictionary dic.txt

dic.txt即为字典文件;默认字典是abcd字母;为了加大阅读难度,应该尽可能0、o、O来进行混合;

你可能感兴趣的:(android 混淆进行代码去重)