android 混淆配置

android 发布正式版本都会涉及到代码加密,防止反编译,这就涉及到混淆文件的配置

1、在app模块的build.gradle中配置

buildTypes {
    release {
            //开启混淆
            minifyEnabled true
            //移除无用资源
            shrinkResources true
            //压缩优化
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules1.pro'
            signingConfig signingConfigs.release
    }
   
}

然后在其中引用的proguard-rules.pro文件中配置混淆即可

注:这里的app模块是指在build.gradle中配置的是

plugin: 'com.android.application'

因为有的工程中有多个模块

2、proguard-rules.pro文件中配置混淆

基本配置

#指定代码的压缩级别
-optimizationpasses 5
#是否使用大小写混合
-dontusemixedcaseclassnames
#是否混淆第三方jar
-dontskipnonpubliclibraryclasses
#混淆时是否做预校验
-dontpreverify
#混淆时是否记录日志
-verbose

#如果引用了v4或者v7包,可以忽略警告,因为用不到android.support
-dontwarn android.support.**

#不混淆资源类
-keepclassmembers class **.R$* {
    public static <fields>;
}
#不混淆JIN方法
-keepclasseswithmembernames class * {
    native <methods>;
}

剩下的混淆配置根据项目中引用的第三方包自行配置,正常引用第三方包时,会提供混淆配置的,加上即可

3、多模块混淆

(1)所有的混淆配置都在主模块的proguard-rules.pro文件中配置

(2)在主模块中配置基本配置,然后在子模块的混淆文件中配置该模块所需要的混淆

子模块配置和主模块中有所不同

buildTypes {
    release {
        consumerProguardFiles 'consumer-rules.pro'
    }
}

猜你喜欢

转载自blog.csdn.net/chongchi_wxcc/article/details/127136644