Android代码混淆常见配置[通俗易懂]

Android代码混淆常见配置[通俗易懂]Android代码混淆常见配置1.manifest中注册的都不能混淆,如果混淆了就找不到了,所以一下类不能被混淆,一般保持原样。-keeppublicclass*extendsandroid.app.Activity-keeppublicclass*extendsandroid.app.Application -keeppublicclass*exten

大家好,又见面了,我是你们的朋友全栈君。

Android代码混淆常见配置

1.manifest中注册的都不能混淆,如果混淆了就找不到了,所以一下类不能被混淆,一般保持原样。

-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.BroadcastReceiver

-keep public class * extends android.content.ContentProvider

-keep public class * extends android.app.backup.BackupAgentHelper

-keep public class * extends android.preference.Preference

-keep public class com.android.vending.licensing.ILicensingService

keep就是 告诉proguard不用混淆这个类

2.第三方包不能混淆

  找到应用中引入的包

Android代码混淆常见配置[通俗易懂]

查看包的包名;

Android代码混淆常见配置[通俗易懂]

    -libraryjars libs/android-support-v4.jar

  -dontwarn android.support.v4.**

  -keep class android.support.v4.** { }

-libraryjars指明lib包的在工程中的路径,而

-dontwarn android.support.v4.** 不要警告找不到android.support.v4.** { }这个包里面的类的相关引用,防止可接受警告的出现影响到程序的运行。

-keep class android.support.v4.** { *; }保持第三方库中的类不混淆

4.引入.so库,不然混淆后就无法找到

Android代码混淆常见配置[通俗易懂]

-libraryjars libs/armeabi/libcapscreen.so
  -libraryjars libs/armeabi/libencrypt.so
  -libraryjars libs/armeabi/libfile.so

5.实体类、反射R文件不能混淆

#过滤R文件的混淆: -keep class **.R$* { *;

}

4.JNI不能混淆

其他不能被混淆的类有:

# 保持 native 方法不被混淆

keepclasseswithmembernames class * {

native;

}

# 保持自定义控件类不被混淆

keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet);

}

# 保持自定义控件类不被混淆

keepclasseswithmembers class * {

public (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 *;

}

6.当混淆运行结束后会产生以下文件:

Android代码混淆常见配置[通俗易懂]

dump.txt:

描述.apk文件中所有类文件的内部结构

mapping.txt:

列出原始类的方法、字段与混淆后的代码间的映射,这个文件比较重要,如果你的代码混淆后会产生bug的话,log提示中是混淆后的代码,希望定位到源代码的话就可以根据mapping.txt反推。

sends.txt:

列出了未被混淆的类和成员

usage.txt

列出了在apk中删除的代码


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139353.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号