studio 导出jar包和混淆jar包

来源:互联网 发布:linux强制删除文件夹 编辑:程序博客网 时间:2024/05/29 13:25

    众所周知Android studio会在library所依赖的app运行或者build之后自动生成jar,路径为build/intermediates/bundles/debug or release/classes.jar,这样生成的jar是可以用的,但不是我们可以控制的,所以我们需要通过其他方式来解决这个问题




1.手动打包jar包

         1> 仅打包class文件

task buildMyJar(type: Jar, dependsOn: ['build']) {    //导出的jar文件名称    archiveName = 'TestConfuseApp.jar'    //从哪个目录打包jar    from('build/intermediates/classes/debug')    //导出的jar文件的存放目录(未指定则默认存放在build/libs下)    destinationDir = file('build/libs')    //去掉不要的类    exclude('com/xibei/test/sqpay/BuildConfig.class')    exclude('com/xibei/test/sqpay/BuildConfig\$*.class')    exclude('**/R.class')    exclude('**/R\$*.class')    //需要打包的类    include('com/sqpay/utils/*.class')    include('com/xibei/test/sqpay/entity/*.class')    include('com/xibei/test/sqpay/utils/*.class')}
2> 混淆jar包

task proguard(type: proguard.gradle.ProGuardTask, dependsOn: buildMyJar) {//  输入路径    injars "build/libs/TestConfuseApp.jar"//  输出路径    outjars 'libs/TestConfusedApp.jar'//  添加配置信息    configuration 'proguard-rules.pro'}

3>   因为我们是自己手动混淆了,所以要指定混淆规则,然后打开module的proguard-rules.pro文件,将AndroidStudio默认的混淆文件复制、粘贴到proguard-rules.pro中。 默认混淆文件E:\adt-bundle-windows-x86_64-20131030\sdk\tools\proguard\proguard-android.txt  自己添加的混淆条件

-keepattributes Signature-libraryjars libs/volley.jar-libraryjars libs/banksdk.jar-libraryjars libs/libammsdk.jar-keep class com.sqpay.utils.PayUtil{        public *; }-keep class com.xibei.test.sqpay.entity.MerchantInfor{        public *; }-keep class com.android.volley.**{*;}-keep class com.tencent.mm.**{*;}-keep class com.switfpass.pay.**{*;}
4> 点击studio右侧的Gradle




0 0