我使用的是proguard5.2.1,可以自行下载,找不到我再发你
执行 proguard5.2.1\bin\proguardgui.bat
以下是相关步骤,直接上图
1、添加没混淆的jar,以及混淆后jar存放位置, 替换掉jre改成android.jar
2、去掉shrink,不要勾选 (我勾选了这个会有点异常,具体原因不知道...)
3、保存设置
4、加载刚才的设置
4.1、----- 这里还有一步是添加一些混淆规则,看需求....---
5、直接process,开始混淆
1
2
3
4
5
6、
以上就混淆成功了!
界面上有提示部分警告, 只要混淆后的jar,功能没问题就可以不管他~~~
这里补充一下上面说的4.1 步。。
这个需要自己根据自己需求去添加。
具体可以baidu~~~
以下贴我用到的以及对应作用
有自定义view需要添加
-keepclasseswithmembers class * {
public <init>(android.content.Context);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
不混淆该类名,以及内部public修饰的变量或方法
-keep class com.gw.payment.sdk.Payment {
public *;
}
不混淆这个接口, 因为这个要对外输出的。
-keep class com.gw.payment.sdk.IPaymentCallback {
<methods>;
}
-keep class * implements com.gw.payment.sdk.IPaymentCallback {
<methods>;
<fields>;
}
不混淆四大组件相关
-keep public class * extends android.app.Fragment
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
不混淆该包名下的类
-keep class com.android.sdk.** {*;}
其他的自己百度了~~~
可以参考
http://www.jianshu.com/p/be7ec1819d2f
http://blog.csdn.net/guolin_blog/article/details/50451259