Google从Android SDK2.3开始在android-sdk\tools\lib\目录下面添加了一个proguard.cfg文件。ProGuard是一个Java代码混淆工具,通过ProGuard混淆之后的代码,别人即使反编译APK文件,也只会看到一些让人较难读懂的代码,从而起到保护代码的作用。
让proguard.cfg起作用的方法很简单,在eclipse中打开Android项目,在包浏览器中打开project.properties文件,在文件末尾中加上一句“proguard.config=proguard.cfg”就可以了。
注意事项
Android的编译环境中已默认集成了ProGuard,但在调试模式下不会启用代码混淆,那是因为混淆后的代码会使得调试变得更加复杂。当使用Keytool工具对Android项目进行数字签名时,才会启用代码混淆。使用ADT的GUI界面可以制作签名文件来给APK签名,在eclipse的包浏览器中,鼠标右键单击项目的根节点,在弹出的菜单中选择“Android Tools”→“Export Signed Application Package…”。
使用ProGuard需要注意,安装的Android SDK目录中不能有空格,也不能有中文字符,否则容易造成如下错误。
如果Android项目的SDK版本低于2.3,那么就把android-sdk\tools\lib\目录下面的proguard.cfg文件拷贝至Android项目的根目录。并且修改android-sdk\tools\proguard\bin下的proguard.bat文件,如果没有对该文件做修改,容易造成如下错误。
用写字板打开proguard.bat文件,把
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
修改为
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
即可避免上述错误。