【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代码混淆 选项说明

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值