步驟
- 新建一個library作為Android studio的module
- 在module里面寫自己的類庫(可以引用第三方的jar文件,但打包時候不帶這些jar,用的時候在主項目里面再次引用即可)
- 配置gradle
gradle文件
apply plugin: 'com.android.library'
import com.android.build.gradle.AppPlugin
import com.android.build.gradle.LibraryPlugin
import proguard.gradle.ProGuardTask
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
task buildJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) { // task buildJar(type: Jar, dependsOn: ['build'])
// 導(dǎo)出的jar文件的名稱
archiveName = "paysdk-debug.jar"
//需打包的資源所在的路徑集
from('build/intermediates/classes/release')
destinationDir = file('../libs') // //導(dǎo)出的jar文件的存放目錄(未指定則默認存放在build/libs下) destinationDir = file('D:/libs')
exclude "net/dbo/mylibrary/BuildConfig.class" //去掉不要的類
exclude('**/R.class')
exclude('**/R\$*.class')
include "**/*.*" //需要打包的類 如 // include('com/reginer/mytest/*.class')
}
task proguardJar(dependsOn: ['buildJar'], type: ProGuardTask) {
println('proguard '+project.name+' jar')
//Android 默認的 proguard 文件
configuration android.getDefaultProguardFile('proguard-android.txt')
//加載各模塊proguard配置文件
configuration 'proguard-rules.pro'
String inJar = buildJar.archivePath.getAbsolutePath()
injars inJar
outjars inJar.substring(0, inJar.lastIndexOf('-')) + "-release.jar"
//設(shè)置不刪除未引用的資源(類,方法等)
dontshrink
//運行時jar包不混淆
Plugin plugin = getPlugins().hasPlugin(AppPlugin) ?
getPlugins().findPlugin(AppPlugin) :
getPlugins().findPlugin(LibraryPlugin)
if (plugin != null) {
List<String> runtimeJarList
if (plugin.getMetaClass().getMetaMethod("getRuntimeJarList")) {
runtimeJarList = plugin.getRuntimeJarList()
} else if (android.getMetaClass().getMetaMethod("getBootClasspath")) {
runtimeJarList = android.getBootClasspath()
} else {
runtimeJarList = plugin.getBootClasspath()
}
for (String runtimeJar : runtimeJarList) {
libraryjars(runtimeJar)
}
}
}
proguard-rules.pro文件
就簡單加了一個gson包
-libraryjars libs/gson-2.2.3.jar
運行g(shù)radle命令(或者點擊右邊的腳本文件)
構(gòu)建jar包

Paste_Image.png
混淆jar包

Paste_Image.png
生成的文件位置都在 build.gradle的配置里面

Paste_Image.png