方式1:
project.afterEvaluate(new Action<Project>() {
@Override
public void execute(Project project) {
Map<Project, Set<Task>> allTasks = project.getAllTasks(true);
for (Map.Entry<Project, Set<Task>> projectSetEntry : allTasks.entrySet()) {
Set<Task> value = projectSetEntry.getValue();
for (Task task : value) {
try {
if (task.name.contains("Libs")) {
System.*out*.println("-----------------task.name-----------------" + task.name);
task.doFirst {
println("------------------- find so files start -------------------")
it.inputs.files.each{ file ->
printDir(new File(file.absolutePath))
}
println("------------------- find so files end -------------------")
}
}
} catch (Exception e) {
e.printStackTrace()
}
}
}
}
});
def printDir(File file) {
if (file != null) {
if (file.isDirectory()) {
file.listFiles().each {
printDir(it)
}
} else if (file.absolutePath.endsWith(".so") && (file.getParentFile().name == "armeabi-v7a" || file.getParentFile().name == "arm64-v8a")) {
println "find so file: $ { file.getParentFile().name } /$ { file.name } .so"
}
}
}
方式二:
tasks.whenTaskAdded { task ->
// println("task name = "+task.name)
// if (task.name=='mergeDevNativeLibs') {
task.doFirst {
println("==========================================================")
def v7a = []
def arm64 = []
it.inputs.files.each { file ->
// if (file.absolutePath.endsWith("/jni")) {
// println("==========" + file.absolutePath)
if (file.isDirectory()) {
file.listFiles().each { soFileDir ->
if (soFileDir.absolutePath.contains("armeabi-v7a")) {
if (soFileDir.isDirectory()) {
soFileDir.listFiles().each {
println(it.absolutePath)
v7a.add(it.name)
}
}
}
if (soFileDir.absolutePath.contains("arm64-v8a")) {
if (soFileDir.isDirectory()) {
soFileDir.listFiles().each {
println(it.absolutePath)
arm64.add(it.name)
}
}
}
}
}
}
// }
println("v7a size: $ **{** v7a.size() **}** ")
println("arm64 size: $ **{** arm64.size() **}** ")
println("so in v7a, but not in arm64:")
v7a.each {
if (!arm64.contains(it)) {
println("$it")
}
}
println("==========================================================")
}
// }
}