-keep class **.R$* {*;}
-keep class **.BuildConfig { *; }

#-------------------------5.基本不用动区域--------------------------
#指定代码的压缩级别
-optimizationpasses 5

#包明不混合大小写
-dontusemixedcaseclassnames

#混淆时是否记录日志
-verbose

#优化  不优化输入的类文件
-dontoptimize

# 保留sdk系统自带的一些内容 【例如：-keepattributes *Annotation* 会保留Activity的被@override注释的onCreate、onDestroy方法等】
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

#-----------------------------6.默认保留区-----------------------
# 保持 native 方法不被混淆
-keepclasseswithmembernames class * {
  native <methods>;
}

-keepclassmembers public class * extends android.view.View {
 public <init>(android.content.Context);
 public <init>(android.content.Context, android.util.AttributeSet);
 public <init>(android.content.Context, android.util.AttributeSet, int);
 public void set*(***);
}

#保持 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();
}

# 保持自定义控件类不被混淆
-keepclasseswithmembers class * {
  public <init>(android.content.Context,android.util.AttributeSet);
}
# 保持自定义控件类不被混淆
-keepclasseswithmembers class * {
  public <init>(android.content.Context,android.util.AttributeSet,int);
}
# 保持自定义控件类不被混淆
-keepclassmembers class * extends android.app.Activity {
  public void *(android.view.View);
}

# 保持枚举 enum 类不被混淆
-keepclassmembers enum * {
  public static **[] values();
  public static ** valueOf(java.lang.String);
}

# 保持 Parcelable 不被混淆
-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

# 不混淆R文件中的所有静态字段，我们都知道R文件是通过字段来记录每个资源的id的，字段名要是被混淆了，id也就找不着了。
-keepclassmembers class **.R$* {
  public static <fields>;
}

-keep public class * extends android.view.View{
    *** get*();
    void set*(***);
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
    public void *(android.view.View);
}

-keepclasseswithmembernames class * {
    native <methods>;
}

# 保持所有 androidx 包及其子包的类和成员不被混淆
-keep class androidx.** { *; }
-dontwarn androidx.**

# 保持所有 android 包及其子包的类和成员不被混淆
-keep class android.** { *; }
-dontwarn android.**

# 保持所有 com.google.android 包及其子包的类和成员不被混淆
-keep class com.google.android.** { *; }
-dontwarn com.google.android.**

# 保持所有 javax 包及其子包的类和成员不被混淆
-keep class javax.** { *; }
-dontwarn javax.**

# 保持所有 kotlin 包及其子包的类和成员不被混淆
-keep class kotlin.** { *; }
-dontwarn kotlin.**

# 保持所有 org.jetbrains 包及其子包的类和成员不被混淆
-keep class org.jetbrains.** { *; }
-dontwarn org.jetbrains.**

# 你可以根据需要添加更多的库，例如：
# 保持所有 com.squareup 包及其子包的类和成员不被混淆
-keep class com.squareup.** { *; }
-dontwarn com.squareup.**

# 保持所有 org.apache 包及其子包的类和成员不被混淆
-keep class org.apache.** { *; }
-dontwarn org.apache.**

-keep class net.aihelp.R { *; }

#-keep class net.aihelp.common.** { *; }
-keep class net.aihelp.config.** { *; }

-keep class net.aihelp.data.** { *; }
-keep class net.aihelp.exception.** { *; }
-keep class net.aihelp.event.** { *; }
# -keep class net.aihelp.init.** { *; }
-keep class net.aihelp.ui.** { *; }
-keep class net.aihelp.utils.** { *; }
-keep class net.aihelp.BuildConfig.** { *; }

-keep class net.aihelp.core.mvp.** { *; }
-keep class net.aihelp.core.ui.** { *; }
-keep class net.aihelp.core.util.** { *; }

-keep class net.aihelp.core.net.check.** { *; }
-keep class net.aihelp.core.net.dns.** { *; }
-keep class net.aihelp.core.net.json.** { *; }
-keep class net.aihelp.core.net.monitor.** { *; }
#-keep class net.aihelp.core.net.mqtt.** { *; }
#-keep class net.aihelp.core.net.http.** { *; }

-keep class net.aihelp.core.net.mqtt.callback.** { *; }
-keep class net.aihelp.core.net.mqtt.cli.** { *; }
-keep class net.aihelp.core.net.mqtt.client.** { *; }
-keep class net.aihelp.core.net.mqtt.codec.** { *; }
-keep class net.aihelp.core.net.mqtt.hawtbuf.** { *; }
-keep class net.aihelp.core.net.mqtt.hawtdispatch.** { *; }
-keep class net.aihelp.core.net.mqtt.tansport.** { *; }
-keep class net.aihelp.core.net.mqtt.util.** { *; }
-keep class net.aihelp.core.net.mqtt.AIHelpMqtt { *; }

-keep class net.aihelp.core.net.http.callback.** { *; }
-keep class net.aihelp.core.net.http.config.** { *; }
-keep class net.aihelp.core.net.http.pojo.** { *; }
-keep class net.aihelp.core.net.http.AIHelpRequest { *; }
-keep class net.aihelp.core.net.http.FileProgressRequestBody { *; }

-keep class net.aihelp.init.AIHelpSupport { *; }
-keep class net.aihelp.init.AIHelpCore { *; }
-keep class net.aihelp.init.CallbackHelper { *; }

-keepattributes *Annotation*
-keepparameternames