我正在尝试以编程方式在Android设备上执行一些shell命令。我能够运行一些命令,但无法运行所有命令。作为示例,我能够运行以下命令:
executeCommandLine(“ls”)
executeCommandLine(“netstat –atun”)
但现在我需要运行以下未正确执行的命令:
$ adb push netstat3 /data/local/tmp/
$ adb shell
$ chmod 755 /data/local/tmp/netstat3
$ /data/local/tmp/netstat3
我写了一个函数来在Android中执行上述命令。该函数为“ls”和“netstat -atun”等命令提供了正确的输出,但是没有为下一个命令给出正确的响应。我的executeCommandLine函数如下:
public String executeCommandLine(String commandLine) {
try {
Process process;
process = Runtime.getRuntime().exec(commandLine);
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String read;
StringBuilder output=new StringBuilder();
while ((read = reader.readLine())!=null){
output.append(read);
output.append("\n");
Log.d("executed command ", output.toString());
}
reader.close();
process.waitFor();
return output.toString();
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
我想知道如何获得所有命令的响应。
答案 0 :(得分:1)
您可以阅读there
Android Debug Bridge(adb)是一个多功能命令行工具,可让您与模拟器实例或连接的Android设备进行通信
您正在尝试在Android设备上执行adb
命令,这没有意义,因为adb
是在计算机上运行的命令行util并且没有adb
在Android设备上。