为了提高代码安全性,故做代买混淆。
在gradle里配置。
buildTypes {
debug {
// 是否混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 配置使用签名信息
signingConfig signingConfigs.release
}
release {
// 是否混淆
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 配置使用签名信息
signingConfig signingConfigs.release
}
//proguard-rules配置
#指定代码的压缩级别
-optimizationpasses 5
#包明不混合大小写
-dontusemixedcaseclassnames
#不去忽略非公共的库类
-dontskipnonpubliclibraryclasses
#不优化输入的类文件
-dontoptimize
#预校验
-dontpreverify
#混淆时是否记录日志
-verbose
#混淆时所采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#保护注解
-keepattributes *Annotation*
#忽略警告
-ignorewarning
# 保留使用的第三库,不进行混淆
# 保留Android Support Library中的类
-dontwarn android.support.**
-keep class android.support.** { *; }
# xUtils的DbUtils注解
-keep class * extends java.lang.annotation.Annotation { *; }
# 不混淆指定的类
-keep class * extends cn.igoplus.base.NoProguardClass { *; }
-keep class cn.igoplus.locker.ble.cmd.BleCmdAck { *; }
# 不混淆指定包下文件
-keep class cn.igoplus.locker.newble.gateway.** {*;}
-keep class cn.igoplus.locker.newble.manager.** {*;}
# 不混淆base目录下的类
#-keep class cn.igoplus.base.**
# 不混淆日志记录类
-keep class com.github.lisicnu.log4android.** { *; }