3

我希望通过调用外部工具来扩展我的 gradle 构建。问题是我需要提供当前目标的当前 CPU 架构,例如,armeabi或者arm64-v8a如果用户选择部署到物理设备。我无法在 gradle 构建文件中找到确定此信息的方法。

目前,我在 preBuild 之前运行的自定义任务中执行此操作,类似于此解决方案。此时有什么方法可以检测 CPU 架构吗?

task customTask(type: Exec) {
    commandLine "myTool.exe", "-architecture=$something"
}

preBuild.dependsOn customTask

我正在使用实验插件0.7.0-beta3。

谢谢

4

1 回答 1

4

您可以使用 ADB shell 命令获取连接设备的 CPU 架构 (ABI):

adb shell getprop ro.product.cpu.abi

对于 Nexus 5,这将armeabi-v7a作为示例返回。

现在我们必须将该命令包装到一个 gradle 方法中:

def getDeviceAbi() {
    return "adb shell getprop ro.product.cpu.abi".execute().text.trim()
}

然后你可以简单地从你的任务中调用这个方法:

task customTask(type: Exec) {
    commandLine "myTool.exe", "-architecture=" + getDeviceAbi()
}
preBuild.dependsOn customTask
于 2016-04-19T22:22:06.190 回答