代码混淆对于一个完善的app 必不可少的
1、新建一个Android 项目时,会自动生成两个文件proguard-project.txt , project.properties
只需要将project.properties文件中 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt这行前面的#去掉,项目就可以代码混淆了
需要注意几点:
1、只能通过export signed Application Package 或者 export Unsigned Application Package这两种方式打包apk,才有代码混淆,直接运行的apk没有代码混淆的。
2、proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt,这行代码中用到了两个配置文件,一个是sdk目录下的proguard-android.txt,一些基本的配置,比如 Activity ,注解 ,实现接口等不被混淆一般不用修改。另一个是proguard-project.txt,之前说的新建项目自动生成的文件,这里你需要加上一些你需要不被混淆的配置。
3、proguard-project.txt配置,
-dontwarn com.tgt.soa.Coder.**
-keep class com.tgt.soa.Coder.** { *;}
表示包名com.tgt.soa.Coder下的所有类都不需要混淆
混淆测试
进行反编译apk,就能知道你的apk是否进行混淆
我自己的百度网盘编译工具下载路径
http://pan.baidu.com/s/1hr7CJ7A
反编译步骤
1 解压apk文件后,将classes.dex 文件复制到dex2jar-2.0文件夹下
2 cmd目录切换到当前文件夹,执行d2j-dex2jar.bat d classes.dex,会生成classes-dex2jar.jar
3 使用jd-gui.exe打开classes-dex2jar.jar,查看源码
混淆过的apk反编译出来的包名都是 a b c 类的包名