android 使用proguard 混淆jar

  我使用的是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


猜你喜欢

转载自blog.csdn.net/zgf1991/article/details/78116349