如何生成Android项目的jar包以及jar包的混淆

1.在建立完Android项目后,选择export ->java->JAR file
除了src中的代码,其他的都不要勾上如何生成Android项目的jar包以及jar包的混淆_第1张图片

2.打开Android_SDK\tools\proguard\bin路径下proguardgui.bat批处理文件,如何生成Android项目的jar包以及jar包的混淆_第2张图片,如果你有.cfg
文件那就直接load configuration,如果没有可以编辑一个文档,然后改后缀名,下面的配置参数是可以直接复制到你自己文件中的,这样的好处就在于:你不需要一步一步的去配置下面的参数,直接导入cfg文件,然后点最后一步,process就可以生成混淆后的jar包了,cfg文件格式为:

-injars testexport.jar【jar包所在地址】
-outjars out【输出地址】
-libraryjars ‘D:\progream file\Android_SDK\platforms\android-10\android.jar’ 【引用的库的jar,用于解析injars所指定的jar类】

-optimizationpasses 5
-dontusemixedcaseclassnames 【混淆时不会产生形形色色的类名 】
-dontskipnonpubliclibraryclasses 【指定不去忽略非公共的库类。 】
-dontpreverify 【不预校验】
-verbose
-optimizations !code/simplification/arithmetic,!field/,!class/merging/ 【优化】
-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 public abstract interface com.asqw.android.Listener{
public protected ; 【所有方法不进行混淆】
}
-keep public class com.asqw.android{
public void Start(java.lang.String); 【对该方法不进行混淆】
}
-keepclasseswithmembernames class * { 【保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后)】
native ;
}
-keepclasseswithmembers class * { 【保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。】
public (android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {【保护指定类的成员,如果此类受到保护他们会保护的更好 】
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {【保护指定的类文件和类的成员】
public static final android.os.Parcelable$Creator *;
}

如何生成Android项目的jar包以及jar包的混淆_第3张图片添加先前生成的testexport.jar,和添加自己命名一个输出的jar文件,添加library Android_SDK\platforms\android-10目录下的Android.jar
3.点击process,你可以将你自己新改掉的cfg文件重新save configuration,然后process,你将会在你output目录下发现你的混淆后的jar包,
4,最后一步,就是使用java Decompiler进行查看一下你自己的jar是否混淆成功。
如何生成Android项目的jar包以及jar包的混淆_第4张图片

另:
在点击process混洗时可能会报出warning,如果报了,最直接的方法是先保持整个类的完整不混淆,然后再看是否可以。混淆过的jar包也可以重新新建一个library项目给别的Android项目使用

你可能感兴趣的:(代码心得)