ProGuard 是一个开源的java代码混淆工具,Android SDK 包中已经内置了此工具,目录位于:Android-SDK\tools\proguard,不过Android SDK默认不启用此功能,如果我们需要对自己的Android项目进行代码混淆需要在项目配置文件中设置。

Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard的主要作用就是混淆。当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。

在Android 2.3以前,混淆Android代码只能手动添加proguard来实现代码混淆,非常不方便。而2.3以后,Google已经将这个工具加入到了SDK的工具集里。具体路径:SDK\tools\proguard。当创建一个新的Android工程时,在工程目录的根路径下,会出现一个proguard的配置文件proguard.cfg。不过新版本ADT生成的配置文件已经更名为proguard-project.txt,也就是说,我们可以通过简单的文本方式配置,就可以在我们的elipse工程中直接使用ProGuard混淆Android工程。

Android 代码混淆步骤:

1、首先,在工程描述文件 project.properties 中启用ProGuard(将前面的#去掉)。如下所示:

proguard.config=proguard-project.txt

2、根据自己项目需要对 proguard-project.txt 文件配置,当然完全可以用 Google 默认配置。

3、通过 Export 导出APK文件即为混淆后的文件。

对于如何配置 proguard-project.txt 文件请网上搜索资料或参考 Android 官方

20131004114820

经过代码混淆的APK被反编译后一些类名、方法名和变量名等,都变成了一些无意义的字母或者数字,证明混淆成功!

20131004114429

发表评论

/ 快捷键:Ctrl+Enter
加载中……