首页 > 编程知识 正文

android studio布局代码,dex混淆

时间:2023-05-04 04:24:56 阅读:111705 作者:2962

#指定代码的压缩级别

-优化过程5

#不要在包名称中混合大小写

-dontusemixedcaseclassnames

#不要忽略非公共库类

- dontskipnonpubliclibraryclasses

#不优化/优化输入的类文件

- dont最佳化

#事前检查

-dontpreverify

#混淆时是否记录

-verbose

#混淆时采用的算法

-优化! code/simplification/arithmetic! field/*, class/merging/*

#忽略警告

-ignorewarning

#保护注释

-keepattributes *Annotation*

#保护反射的普通调用

-keepattributes Signature

-keepattributes EnclosingMethod

#不混淆哪个班

- keep public class * extends Android.app.fragment

- keep public class * extends Android.app.activity

- keep public class * extends Android.app.application

- keep public class * extends Android.app.service

- keep public class * extends Android.content.broadcast receiver

- keep public class * extends Android.content.content provider

- keep public class * extends Android.app.backup.backupagenthelper

- keep public class * extends Android.preference.preference

- keeppublicclasscom.Android.vending.licensing.ilicensingservice

#不要混淆所有View的子类及其子类的get、set方法

- keep public class * extends Android.view.view {

公共(Android.content.context );

公共(Android.content.context,android.util.AttributeSet );

Public(Android.content.context,android.util.AttributeSet,int );

公共语音集* (…);

公共* * *获取* ();

}

#指定不要混淆所有的JNI方法

- keepclasseswithmembernamesclass * {

空;

}

Activity参数类型不会混淆View的所有方法

- keepclassmembersclass * extends Android.app.activity {

Ublicvoid*(Android.view.view );

}

不要混淆Parcelable及其子类和Creator成员变量

- keep class * implements Android.OS.parcelable {

publicstaticfinalandroid.OS.parcelable $ creator *;

}

不混淆可串行化接口

- keepnamesclass * implements Java.io.serializable

不要混淆可序列化接口子类中指定的部分成员变量和方法

- keepclassmembersclass * implements Java.io.serializable {

staticfinallongserialversionuid;

privatestaticfinaljava.io.objectstreamfield [ ] serialpersistentfields;

! 静态! 传输

! 私有;

! 私有;

privatevoidwriteobject (Java.io.object output stream;

privatevoidreadobject (Java.io.object inputstream;

java.lang.Object writeReplace (;

java.lang.Object readResolve (;

}

请勿混淆指定Enum类型的方法。 混淆报告的话

建议直接使用#上的- keepclassmembersclass * implements Java.io.serializable

#-keepclassmembers enum * {

# public static **[] values (;

# public static * * value of (Java.lang.string );

() )是

#不要混淆类r及其所有内部静态类的所有静态变量字段

-keepclassmembers class **.R$* {

公共静态;

}

如果有人使用Gson分析包,则直接添加以下行即可成功混淆: 否则,报告错误。

-keep class sun.misc.Unsafe { *; }

- keepclasscom.Google.gson.examples.Android.model.* * { *; }

如果有使用WebView的JS调用接口,则必须添加以下规则:

- keepclassmembersclassfqcn.of.JavaScript.interface.for.webview {

公共*;

}

####记录生成的记录数据,在接地构建时向本项目根输出####

#apk包中所有class的内部结构

-dump class_files.txt

#未混淆的类和成员

-printseeds seeds.txt

列出从apk中删除的代码

-printusage unused.txt

#混淆前后的映射

-printmapping mapping.txt

####记录生成的记录数据,在接地构建时向本项目根输出####

####项目特殊处理代码# # #

#银联

#保护第三方jar包(如果配置了Android Studio,则会报告错误) )。

#-libraryjarslibs/uppayassistex.jar

#忽略类警告

-dontwarn com.unionpay.**

#不要混淆类和成员变量

-keep class com.unionpay.** { *; }

#友爱

-keep class com.umeng.**{ *; }

#腾讯

-keep class com.tencent.**{ *; }

#支付宝

-keep class com.alipay.** { *; }

-dontwarn android.support.**

-dontwarn com.flurry.**

-dontwarn com.paypal.**

-dontwarn org .优雅的鞋垫. **

- dontwarnorg.Android.agoo.ut.impl.* *

#结束

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。