要获得android的root权限,我们通常会这样做:
Process p=Runtime.getRuntime().exec(“su”);
DataOutputStream stream=new DataOutputStream(p.getOutputStream());
stream.writeBytes("mkdir /testFolder\n");
stream.writeBytes(“exit \n”);
p.waitFor();
执行上面的代码,我们可以创建一个文件夹 / testFolder ,一切都很好,但我对此感到困惑。你知道,当我们想要在终端中执行一些命令时,我们首先输入一些代码,程序读取输入缓冲区以对代码执行某些操作。但是在这里我们将字符串写入子流程的输出流,为什么呢?似乎te子进程从其输出缓冲区读取命令,而不是输入缓冲区?
答案 0 :(得分:0)
也许命名有点奇怪,但Process.getOutputStream()会返回一个连接到流程标准输入的OutputStream
。
名称来自父进程。父进程的输出是子进程的输入。父进程的输入是子进程的输出。