首页 > 解决方案 > java中adb命令的等效版本?

问题描述

我可以从终端执行 adb shell 命令类型:

./adb shell 'sh -c "param1 param2 param3 param4"'

但是,当我尝试使用Runtime.exec 上述命令在 android 应用程序中运行它时,它会分解为表单的不同参数

[adb, shell, 'sh, -c, "param1, param2, param3, param4"]

但是,这是从 shell 运行时的单个输入参数。如何在应用程序中运行它?

注意:参数是一种路径,例如/a/b/c/

标签: javaandroidshellruntimeadb

解决方案


为避免字符串拆分方式的怪异,通常只使用Runtime.exec 的多参数版本更安全:

System.getRuntime().exec("adb", "shell", "sh -c \"param1 param2 param3 param4\"");

请注意,在这个特定的调用中,您有 2 个adb可执行文件的参数。shell以及将由 Android 设备上的 shell 解析的整个命令。整个命令总是必须进入一个单独的参数,如上所示。


推荐阅读