美文网首页
android 通用混淆配置(近期)

android 通用混淆配置(近期)

作者: 格老子 | 来源:发表于2017-07-17 14:06 被阅读75次

    Android通用混淆配置

    #指定压缩级别
    -optimizationpasses 5
    #不跳过非公共的库的类成员
    -dontskipnonpubliclibraryclassmembers
    #混淆时采用的算法
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
    #把混淆类中的方法名也混淆了
    -useuniqueclassmembernames
    #优化时允许访问并修改有修饰符的类和类的成员 
    -allowaccessmodification
    #将文件来源重命名为“SourceFile”字符串
    -renamesourcefileattribute SourceFile
    #保留行号
    -keepattributes SourceFile,LineNumberTable
    #保持泛型
    -keepattributes Signature
    #保持所有实现 Serializable 接口的类成员
    -keepclassmembers class * implements java.io.Serializable {
        static final long serialVersionUID;
        private static final java.io.ObjectStreamField[] serialPersistentFields;
        private void writeObject(java.io.ObjectOutputStream);
        private void readObject(java.io.ObjectInputStream);
        java.lang.Object writeReplace();
        java.lang.Object readResolve();
    }
    
    #Fragment不需要在AndroidManifest.xml中注册,需要额外保护下
    -keep public class * extends android.support.v4.app.Fragment
    -keep public class * extends android.app.Fragment
    
    # 保持测试相关的代码
    -dontnote junit.framework.**
    -dontnote junit.runner.**
    -dontwarn android.test.**
    -dontwarn android.support.test.**
    -dontwarn org.junit.**
    
    

    其他常见配置

    # Gson specific classes
    -keep class sun.misc.Unsafe { *; }
    #-keep class com.google.gson.stream.** { *; }
    #实体类不混淆(自己项目实体类不被混淆,因为Gson中用到了反射)
    -keep public class **.*model*.** {*;}  ##这里需要根据项目结构指定bean目录
    #常用类配置
    -dontwarn org.codehaus.**
    -dontwarn java.nio.**
    -dontwarn java.lang.invoke.**
    #android 网络
    -dontwarn android.net.**
    -keep class android.net.SSLCertificateSocketFactory{*;}
    

    其他:
    https://www.jianshu.com/p/c02049ed035d

    相关文章

      网友评论

          本文标题:android 通用混淆配置(近期)

          本文链接:https://www.haomeiwen.com/subject/absfkxtx.html