【Android】代码混淆简单介绍

1.代码混淆的目的

1.1增加代码的安全性和保护知识产权。当开发人员编写的代码被编译成可执行文件后,存在被反编译的风险。通过进行代码混淆,可以使得反编译后的代码难以理解和分析,从而增加攻击者逆向工程的难度。

1.2代码混淆通过对代码进行重命名、删除无用代码、替换常量等操作,使得代码逻辑变得晦涩难懂,且与原始代码之间的对应关系难以还原。这样可以有效减少恶意用户或竞争对手对代码的窃取和篡改,保护代码中的商业逻辑、算法实现等核心内容。

1.3缩小应用程序的体积,并提供一定程度的性能优化,因为一些冗余和无用的代码被删除或优化。

2.混淆的注意事项

有些类是不能被混淆的:

1 使用了自定义View要保证不能被混淆
2 使用了枚举要保证枚举不被混淆
3 对第三方库中的类不进行混淆
4 运用了反射的类也不进行混淆
5 使用了 Gson 之类的工具要使 JavaBean 类即实体类不被混淆
6 在引用第三方库的时候,标明库的混淆规则
7 有用到 WebView 的 JS 调用也需要保证写的接口方法不混淆
8 Parcelable 的子类和 Creator 静态成员变量不混淆,否则会产生 Android.os.BadParcelableException 异常
9 使用的四大组件,自定义的Application* 实体类
10 JNI中调用的类
11 Layout布局使用的View构造函数(自定义控件)、android:onClick等。

3.关于混淆的分析和应用文章

链接:Android混淆规则是如何生效的

链接:Android技能树补全 - 从害怕到玩转Android代码混淆

链接:Android混淆(包括混淆四大组件)

链接:Android代码混淆 选项说明

你可能感兴趣的:(Android学习笔记,android)