步骤
- 新建一个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'])
// 导出的jar文件的名称
archiveName = "paysdk-debug.jar"
//需打包的资源所在的路径集
from('build/intermediates/classes/release')
destinationDir = file('../libs') // //导出的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"
//设置不删除未引用的资源(类,方法等)
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
运行gradle命令(或者点击右边的脚本文件)
构建jar包
混淆jar包
生成的文件位置都在 build.gradle的配置里面