android studio防止反编译,防反编译利器-Android studio混淆代码压缩apk包体积

前言

打包混淆对初学者小冷来说是很抗拒的,刚开始我只是知道在build.gradle文件 minifyEnabled下设置为true,可是proguard-rules.pro文件里面什么都没有,就这样签名打包了,结果必然是打包不成功的。后来又在网上粘了一堆proguard-rules.pro文件,结果还是打包失败,陆陆续续的经过了很长一段时间,这个问题就被我搁置了,以致于apk包一直处于“裸奔”状态。

介绍

直到小冷亲自打jar包时候才发现了一些端倪,代码在做混淆时候,如果proguard-rules.pro文件里面什么都没配置,那默认你的大部分代码要被混淆的找不到了,即使能打包成功。在做混淆时候一定要注意引用的部分库,是否避免被混淆。如果打包后产生crash那就要根据提示查看是那些库被混淆了。

常用混淆语句

保留部分包中的所有类不被混淆

$ -keep class com.chad.baserecyclerviewadapterhelper.entity.** {*;}

3bda261bceb4?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

图一

保留某一个文件不被混淆

$ -keep class com.chad.baserecyclerviewadapterhelper.util.SpannableStringUtils{*;}

3bda261bceb4?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

图二

保留继承的某一类文件不被混淆

$ -keep public class * extends android.app.Activity

不提示警告

$ -dontwarn com.handmark.pulltorefresh.library.**

小冷用到的避免混淆文件(仅供参考)

proguard-rules.pro在这里可能会被复制到,简书复制粘贴有点扯点我查看

其他

如果已经在gradle文件设置了混淆,但始终不能打包成功,那也没有关系,还可以通过360加固工具或腾讯加固工具混淆代码

比如说我在gradle中未设置混淆,只使用了360加固工具(前提是得签名成功,往往混淆后才导致签名打包失败),在反编译代码时候,代码如图。

3bda261bceb4?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

反编译后代码

总结

一些跟so库相关的类千万要保留避免被混淆,因为他的类名往往是跟so库中c代码文件名是绑定的,混淆后就会找不到so库。Model类也不可混淆,使用Gson自动解析的Model如果被混淆了将会报错。混淆后代码高度压缩apk明显变小,大量类名被abc等代替,即使被反编译看代码估计也是件痛苦的事。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值