android 混淆文件的编写(proguard-rules.pro)

来源:互联网 发布:郭斯特 知乎 编辑:程序博客网 时间:2024/05/19 04:28
-optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-dontwarn-dontskipnonpubliclibraryclassmembers-ignorewarnings-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod# 保持 native 方法不被混淆-keepclasseswithmembernames class * {    native <methods>;}-keepclasseswithmembers class * {    public <init>(android.content.Context, android.util.AttributeSet);}-keepclasseswithmembers class * {    public <init>(android.content.Context, android.util.AttributeSet, int);}# 保留Parcelable序列化类不被混淆-keep class * implements android.os.Parcelable {    public static final android.os.Parcelable$Creator *;}# 保留Serializable序列化的类不被混淆-keepclassmembers class * implements java.io.Serializable {    static final long serialVersionUID;    private static final java.io.ObjectStreamField[] serialPersistentFields;    !static !transient <fields>;    !private <fields>;    !private <methods>;    private void writeObject(java.io.ObjectOutputStream);    private void readObject(java.io.ObjectInputStream);    java.lang.Object writeReplace();    java.lang.Object readResolve();}# 对于带有回调函数的onXXEvent**On*Listener的,不能被混淆-keepclassmembers class * {    void *(**On*Event);    void *(**On*Listener);}#保持第三方包不混淆-dontwarn com.tencent.**-keep class com.tencent.**{*;}-keep class com.qq.**{*;}-keep class tencent.tls.**{*;}#保持指定包下的类不混淆-keep class nodepp.**{*;}-keep public class com.nodepp.smartnode.helper.**{*;}-keep public class com.nodepp.smartnode.helper.**{*;}-keep public class com.nodepp.smartnode.model.**{*;}-keep public class com.nodepp.smartnode.callback.**{*;}#移除log日志,需要把sdk\tools\proguard目录下的proguard-android.txt文件下的-dontoptimize注释掉才能生效-assumenosideeffects class android.util.Log {public static boolean isLoggable(java.lang.String, int);public static int v(...);public static int i(...);public static int w(...);public static int d(...);public static int e(...);}
android {    compileSdkVersion 22    buildToolsVersion '22.0.1'    defaultConfig {        minSdkVersion 15        targetSdkVersion 22        versionCode 1        versionName "1.0"    }    buildTypes {        release {            minifyEnabled false //false表示不混淆,true表示开启混淆            //Zipalign优化            zipAlignEnabled true            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }        debug {            minifyEnabled false    //false表示不混淆,true表示开启混淆            //Zipalign优化            zipAlignEnabled true            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    lintOptions {        abortOnError false    }}

打包jar 的话直接在命令行输入gradlew makejar就行,在module下的gradle.build进行配置,混淆文件也是module下的
打包apk进行混淆时直接build整个工程,在app下的gradle.build进行配置,
混淆文件也是app下的
阅读全文
0 0
原创粉丝点击