Android 混淆代码(eclipse篇)

  • 代码混淆的确是一个操蛋的问题,不过也没有想象中那么操蛋。
  • 首先说明一下混淆的意义:1.增加反编译的难度;2.压缩apk的大小。
  • 下面我来简单介绍一下,eclipse中怎么去混淆代码,到AndroidStudio应该也是一样的?
  • 步骤如下
  • 1.首先将project.properties的11行前面的#号去掉,将改行替换成
proguard.config=proguard-android.txt
  • 2.去sdk\tools\proguard目录下复制proguard-android.txt文件当eclipse项目的根目录中。
    • 有些人可能没有这个目录,这个自行百度解决。。。
  • 3.理论上准备工作已经完成了,接下来export就可以生成一个混淆过的apk了。
  • 4.但是,有可能你的部分jar或者部分.java文件不希望被混淆。那么你可以keep掉。具体如何操作?比如,我想要保留BBBBBBBB的类名不被混淆,我就这样写;比如我要保留CCCCCCCCCCC的类名以及全部的属性方法不被混淆,我就这么写;比如,我想保留CCCCCCCCCCC的内部类DUCK的全部属性和方法,我就这么写。
-keep class com.pythonCat.indictors.BBBBBBBB
-keep class com.pythonCat.indictors.CCCCCCCCCCC {*;} 
-keep class com.pythonCat.indictors.CCCCCCCCCCC$DUCK {*;} 
  • 5.如果是你项目中使用到的jar包呢,理论上是直接被混淆,那么我想保留呢?可以参照保留CCCCCCCCCCC的属性方法类名的方式来。但是jar包中往往有很多类,这么弄比较麻烦,那么我怎么弄呢?比如,我引用了gsonjar包,直接这样
-keep class com.google.** { *; }
  • 以上的5点全部经过验证了,混淆打包是OK的。需要注意的是使用gson时对应的bean文件是需要进行保留不被混淆的。
  • 6.OK,既然混淆完毕,接下来就是选中当前项目–右键–导出–EXPORTING Android Application –然后就是一路的next,需要创建keystore就创建,不需要就使用以前的,之后到finish。然后你的目标路径就出现了一个你刚刚混淆打包出来的apk了。
  • 然后你就可以将这个apk发布到应用市场让千万人下载使用了,也不用担心apk被人破解了。


  • 好了,介绍这么多,还是没有看到真东西对不对?OK,下面就是我的一个小的混淆的DEMO,混淆的就是上面介绍的这些内容,保护的也就是上面说的,希望保护的内容。

  • 所以,实际上,我需要操作就是在proguard-android.txt添加这么几行就可以了:
-keep class com.pythonCat.indictors.BBBBBBBB
-keep class com.pythonCat.indictors.CCCCCCCCCCC {*;} 
-keep class com.pythonCat.indictors.CCCCCCCCCCC$DUCK {*;} 
-keep class com.google.** { *; }
-keep class com.pythonCat.indictors.Bean { *; }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值