一、准备
1.需要混淆的jar包——本例:conch_3.jar
2.启动ProguardGui工具(双击sdk\tools\proguard\bin\proguardgui.bat)
3.根据需求配置configuration——本例:test.pro(如下)
-injars 'G:\TestDex1\libs\conch_3.jar'
-outjars 'E:\conch_out.jar'
-libraryjars 'E:\ProgramFiles\android-sdk\platforms\android-19\android.jar'
#
-dontusemixedcaseclassnames #不使用大小写混合
-keepattributes *Annotation*
#
-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 public class com.android.vending.licensing.ILicensingService
#
-keep class com.test.wrapper.** {*;}
-keep class com.test.ExportJavaFunction {*;}
-keep class com.test.LYEngine {*;}
-keep class com.test.ProcessInfo {*;}
#
-keepclasseswithmembernames class *
{
native <methods>;
}
#
-keepclasseswithmembers class *
{
public <init>(android.content.Context,android.util.AttributeSet);
}
-keepclasseswithmembers class *
{
public <init>(android.content.Context,android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity
{
public void *(android.view.View);
}
4.如果混淆后又需要引用内部类需要
-keepattributes InnerClasses
-keep class com.test.ILayaExternalInterface$* { *; } #某文件下的内部类
二、操作
1.准备完成后,在点击右边Proguard按钮,点击Load configration按钮,导入上面配置好的混淆文件。
2.然后点击右边Process按钮,再次点击下面的View Configuration按钮,能看到正确的配置文件。
3.最后点击下面的Process按钮,进行Jar的混淆。
出现successfully提示,则混淆完毕。
——–由此jar混淆完毕——-
附录:
jar包dex化
dx --dex --output=F:\test\AndroidTestProject\assets\out.jar F:\test\AndroidTestProject\assets\bin\classes F:\test\AndroidTestProject\assets\libs