一 打不混淆的包
1 新建 Android Library工程作爲打 jar包要用的工程
2 在 library的 build.gradle文件中加入如下代碼:
task makeJar(type: Jar, dependsOn: ['build']) {
delete 'build/libs/testSDK.jar'
baseName 'testSDK'
from('build/intermediates/classes/release')
exclude "**/R.class"
exclude { it.name.startsWith('R$'); }
}
3 生成jar包
找到Gradle目錄下的,剛剛創建的Android Library名稱目錄下的Tasks,打開other目錄,再找到makeJar,點擊便開始打包jar
生成的jar包位置如下:
二 打包混淆的 jar
1 proguard-rules.pro 中加入以下不需要混淆的說明
-target 1.6
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-optimizationpasses 5
-dontusemixedcaseclassnames
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
-keepparameternames
-verbose
-ignorewarnings
-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 no.nordicsemi.android.dfu.DfuBaseService
-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
-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 * extends android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
# Keep - Library. Keep all public and protected classes, fields, and methods.
#-keep public class * {
# public <fields>;
# public <methods>;
#}
2 在 library的 build.gradle文件中繼續加入如下代碼:
task makeProguardJar(type: proguard.gradle.ProGuardTask, dependsOn: ['makeJar']) {
// 未混淆的jar路徑
injars 'build/libs/testSDK.jar'
// 混淆後的jar輸出路徑
outjars 'build/libs/proGuard_testSDK.jar'
// 混淆協議
configuration 'proguard-rules.pro'
}
表示生成的混淆jar包在 —> build/libs/proGuard_testSDK.jar
3 找到Gradle目錄下的,剛剛創建的Android Library名稱目錄下的 Tasks,打開 other目錄,再找到 makeProguardJar, 點擊便開始打混淆的 jar包,如下圖:
4 生成jar包如圖:
最後DEMO地址:
http://download.csdn.net/download/desireyaoo/10016399