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

1.在建立完Android项目后,选择export ->java->JAR file
除了src中的代码,其他的都不要勾上勾选如下图然后一直next到finish

2.打开Android_SDK\tools\proguard\bin路径下proguardgui.bat批处理文件,这是批处理界面,如果你有.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 *;
}

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值