使用proguard对android源码混淆

Android源码很容易被工具反编译出来,因此,对源码做混淆是一种非常常用的保护源码的方式。不仅如此,proguard还会对源码做一些优化。

因为我们项目中使用了第三方jar,也集成第三方sdk,所以需要排除。

1.首先编辑工程下的project.properties,打开混淆功能。如下:去掉#号注释就行了。

20151022095111

2.编辑工程下的proguard-project.txt配置文件。

#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

这个是保持自己包中不需要混淆的类,如果有些类调用了jni也不需要混淆,不然会出错。还有如果项目中有其他项目作为library引入,那这些项目的一些类也不能混淆。在我们项目中没有使用到,所以这里只贴出示例。

-ignorewarnings
-optimizationpasses 5
-dontusemixedcaseclassnames
-verbose

这个是忽略控制台的一些警告,优化参数optimizationpasses设为5。

-libraryjars libs/android-support-v4.jar
-libraryjars libs/fastjson-1.1.45.android.jar
-libraryjars libs/okhttp-2.0.0.jar
-libraryjars libs/okhttp-urlconnection-2.0.0.jar
-libraryjars libs/okio-1.0.1.jar
-libraryjars libs/passguard.jar
-libraryjars libs/statistics_sdk.jar

排除第三方的jar包。

设置完后打包导出,发现代码已被混淆。

20151022095559

在自动生成的proguard目录下的mapping.txt中可以看到混淆的对映关系。

20151022095637

20151022095721

评论已关闭。