您的位置:首页 > 移动开发 > Android开发

android studio 打包jar 及混淆

2017-10-27 20:02 429 查看
file ->new module

在your_module的lib中加入你是用的第三方包

在build gradle

中加入

//==============以下是要添加的内容======================
//task to delete the old jar 这个表示将会删除这个目录下的*.jar名称的旧版本
task deleteOldJar(type: Delete) {
delete 'build/libs/komlin-core.jar'
}

//task to export contents as jar 将from(*)该目录下的文件复制到release/下 并更改名称为Bsdiff.jar
task exportJar(type:Copy) {
from('build/intermediates/bundles/debug/')
into('build/libs/')
include('classes.jar')
//Rename the jar
rename('classes.jar', 'xx-core.jar')

}

exportJar.dependsOn(deleteOldJar, build)




buildTypes {
release {
minifyEnabled true //改的就是这里 是否混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}



在proguard-rules.pro 修改混淆规则


-optimizationpasses 5          # 指定代码的压缩级别
-dontusemixedcaseclassnames   # 是否使用大小写混合
-dontskipnonpubliclibraryclasses
-dontpreverify           # 混淆时是否做预校验
-verbose                # 混淆时是否记录日志
-ignorewarnings   #屏蔽警告
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  # 混淆时所采用的算法

#保持io.netty.**这个包里面的所有类和所有方法不被混淆
-dontwarn io.netty.**
#混淆jar的时候一定要配置,不然会把没有用到的代码全部remove
-dontshrink

#-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.
4000
licensing.ILicensingService    # 保持哪些类不被混淆

-keepclasseswithmembernames class * {  # 保持 native 方法不被混淆
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);
#}
-keep class komlin.com.your.KomlinUtils{
public *;
}
-keep interface komlin.com.your.KomlinSocketCallBack{
*;
}
-keep class  komlin.com.your.KomlinClient{
public *;
}
-keepclassmembers enum * {     # 保持枚举 enum 类不被混淆
public static **[] values();
public static ** valueOf(java.lang.String);
}


点击Gradle projects

选你要打包的模块 双击exportJar 就生成了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: