概述
1趣席、需要將一個(gè)aar包與項(xiàng)目產(chǎn)生的aar包合并成一個(gè)泊柬,其中項(xiàng)目是源碼
2波附、項(xiàng)目是源碼
解壓依賴aar
解壓aar,利用build,gradle
//很重要仅醇,因?yàn)榻鈮汉笕绻鹀opy資源文件到raw里冗美,這時(shí)R文件已經(jīng)編譯了,所以要在R文件編譯之前執(zhí)行此操作
tssks.withType(com.android.build.gradle.tasks.NdkCompile) {
compileTask -> compileTask.dependsOn(unzipAAR)
}
task unzipAAR(type: Exec) {
commandLine 'unzip', '-o', file("libs/xxxx.aar").getAbsolutePath(), '-d', file('MyAAR')
}
unzipAAR.doLast {
copy {
from 'MyAAR/res/raw'
into 'src/main/res/raw'
}
copy {
from 'MyAAR/classes.jar'
into 'libs/jars/'
rename { String fileName -> "xxxx.jar"}
}
//這里libs文件夾下只有一個(gè)jar
copy {
from 'MyAAR/libs/'
into 'libs/jars/'
rename { String fileName -> "xxxx.jar"}
}
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn unzipAAR
}
如果有ndk編譯析二,so的copy動(dòng)作要放在ndk之后
task copyJNIso (type: Copy) {
from 'MyAAR/jni'
into 'src/main/libs'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn copyJNIso
}
copyJNIso .mustRunAfter 'ndkBuild'
清除操作
創(chuàng)建一個(gè)makeclean.sh文件粉洼,可以是libs/makeclean.sh
build.gradle文件還要添加
task makeClean(type: Exec) {
executable 'sh'
args "libs/makeclean.sh"
}
clean.dependsOn 'makeClean'
makeclean.sh
···
节预!/bin/sh
rm -rf MyAAR
rm -rf libs/jars/xxxx.jar
rm-rf libs/jars/xxxxx.jar
rm -rf src/main/res/raw
···