在Android Studio中执行su shell命令并多次使用,需要使用Runtime类的exec()方法来执行命令,并且需要用Process类的getOutputStream()方法来获取进程输出流,并用getInputStream()方法来获取进程输入流。另外,为了避免su toast提示,需要在第一次执行su shell命令时加入“-c”参数,并通过输出流将后续操作传递给su shell命令执行。
以下是示例代码:
try {
Process su = Runtime.getRuntime().exec("su -c");
DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
// perform other Root actions here
outputStream.writeBytes("mkdir /data/local/tmp/\n");
outputStream.writeBytes("touch /data/local/tmp/test.txt\n");
outputStream.writeBytes("exit\n");
outputStream.flush();
su.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}