android查看so路径

之前遇到过一个问题,apk中有一个so无法确定其路径,是由哪个依赖引入的,网上查询一番后这里记录一下。build.gradle中添加如下任务

//列出所有包含有so文件的库信息
tasks.whenTaskAdded { task ->
    if (task.name=='mergeDebugNativeLibs') { //如果是有多个flavor,则用 mergeFlavorDebugNativeLibs的形式
        task.doFirst {
            println("------------------- find so files start -------------------")
            println("------------------- find so files start -------------------")
            println("------------------- " +
                    " -------------------")

            it.inputs.files.each { file ->
                printDir(new File(file.absolutePath))
            }

            println("------------------- find so files end -------------------")
            println("------------------- find so files end -------------------")
            println("------------------- find so files end -------------------")
        }
    }
}

def printDir(File file) {
    if (file != null) {
        if (file.isDirectory()) {
            file.listFiles().each {
                printDir(it)
            }
        } else if (file.absolutePath.endsWith(".so")) {
            println "find so file: $file.absolutePath"
        }
    }
}

查看编译输出日志,就能够看到so是从哪个依赖路径添加的了。

你可能感兴趣的:(android查看so路径)