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中删除的代码


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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【python二级-练习题】

    【python二级-练习题】2、随机密码验证题目描述:代码如下:3、信息分配表(字典)题目描述:代码如下:4、全模式分词(jieba)题目描述:代码如下:5、数字金字塔题目描述:6、求最大值、最小值及平均值题目描述:代码如下:7、交换变量题目描述:代码如下:或或8、输入密码-三次机会题目描述:代码如下:9、水仙花数题目描述:代码如下:或或或10、增加与去掉题目描述:代码如下:11、添加通讯录信息题目

    2022年10月12日
  • 博客园h1h2h3笔记和文章写作规范

    博客园h1h2h3笔记和文章写作规范为什么要整理?2016-06-16之前写的大多数文章使用的标题都是h3,h4,而并不是h1,h2,h3。在为文章生成目录后有以下问题:1.文章大纲不清晰;2.由于h2h3没有规划好,生成出来

    2022年8月5日
  • HTML中的表单_表格和表单的作用各是什么

    HTML中的表单_表格和表单的作用各是什么表格表格的基本构成标签table标签:表格标签caption标签:表格标题tr标签:表格中的行th标签:表格的表头td标签:表格单元格表格的基本结构<table>定义表格<caption>表格标题</caption><tr>定义表行<th>定义表头</th></tr><tr&g…

    2022年8月11日
  • jBox使用_jconsole使用教程

    jBox使用_jconsole使用教程$.jBox(content, options);      └ 或者 jBox(content, options);  参数说明:   – content (string,json)      └ 可以是string或json。当是string时,需要加上前缀标识(html:、id:、get:、post:、iframe:),如果没有加标识,系统会自动加上html:,具体请看应

    2022年10月22日
  • ICMP协议

    ICMP协议1、ICMP简介ICMP全名为(INTERNETCONTROLMESSAGEPROTOCOL)网络控制消息协议。ICMP的协议号为1。ICMP报文就像是IP报文的小弟,总顶着IP报文的名头

    2022年7月4日
  • Java cas 实例 客户端配置

    Java cas 实例 客户端配置

    2021年8月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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