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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C51单片机实验——定时器实验

    C51单片机实验——定时器实验实验名称:单片机定时器实验实验环境:普中实验系统;KeilμVision4软件;实验目的:(1)掌握单片机定时器的原理和控制方法。(2)通过编程利用定时器实现定时功能,并利用该定时功能实现时钟分、秒的功能。硬件连线:P2^1口连接led1P2^3口连接led3P2^5口连接led5P2^7口连接led7实验主要代码:/********************************************************************************

    2022年7月26日
    3
  • ORA-01453: SET TRANSACTION must be first statement of transaction

    ORA-01453: SET TRANSACTION must be first statement of transaction

    2021年5月9日
    140
  • windows 激活状况 命令查询

    windows 激活状况 命令查询slmgr-ipkKey安装产品密钥slmgr-upk卸载密钥slmgr-ato激活密钥sLUI4显示电话激活选项msinfo32查看电脑组件系统详细信息slmgr-skms激活服务器以下又是产品win8版本激活的显示状态:slmgr.vbs-dlv显示:最为详尽的激活信息,包括:激活ID、安装ID、激活截止日期slmgr.vbs-dli显示:…

    2022年5月11日
    48
  • 踩坑啥意思_年轻人踩坑

    踩坑啥意思_年轻人踩坑Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。也可以简单把Unity理解为一个游戏引擎,可以用来专业制作游戏!

    2022年9月4日
    2
  • asdsad

    asdsad这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Ma…

    2022年4月27日
    48
  • ElasticSearch搜索引擎常见面试题总结

    ElasticSearch搜索引擎常见面试题总结

    2021年10月5日
    38

发表回复

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

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