我尝试在我的应用程序中在Android上运行python应用程序 此脚本在 Better Terminal Emulator Pro
中工作正常su
busybox chroot /data/local/debian /bin/bash
/usr/bin/python /usr/src/script.py
然后我输入值
>>value1
result
但如果我在我的应用程序中尝试过:
String line;
Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("busybox chroot /data/local/debpsla /bin/bash");
Process proc = Runtime.getRuntime().exec("ls");
OutputStreamWriter osw = new OutputStreamWriter(proc.getOutputStream());
proc.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while ((line = bufferedReader.readLine()) != null){
publishProgress(line);
}
命令 ls 返回不正确的文件列表。这意味着根目录不会更改 我做错了什么? 谢谢!
答案 0 :(得分:0)
您正在分别运行每个命令,因为它们各自启动一个新进程,并且只有JVM的上下文。这意味着您将su
和busybox chroot /data/local/debpsla /bin/bash
以及ls
作为并发和不相关的流程运行。
如果你想要一个人跟随另一个人,你就可以在一个过程中完成这一切。我怀疑写一个你执行的脚本会更容易。