我正在做一个简单的应用程序,它显示了android中的当前进程,就像一个shell。
我的应用程序执行ls,cd,makedir和其他命令,但top或htop命令不执行。 (htop无法识别,顶部,应用程序冻结)。我需要root吗?我已经在unrooted android和top命令工作中下载了终端应用程序。
我的应用有2个课程。主体和壳
校长班
public void onClick(View arg0) {
// TODO Auto-generated method stub
ShellExecuter exe = new ShellExecuter();
command = input.getText().toString();
String outp = exe.Executer(command);
out.setText(outp);
Log.d("Output", outp);
}
shell类
public String Executer(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
String response = output.toString();
return response;
}
为什么某些命令应用程序有效,而顶部例如不?
答案 0 :(得分:0)
如果您已连接设备,请转到shell,在计算机的命令行中使用以下命令查看可用的命令:
adb shell
乍一看,你将能够告诉他们" top"是一项工作,显示和更新有关流程的排序信息"并且它会阻止shell命令行,因此,在您的应用程序中锁定执行该命令的线程。
希望它有帮助!
问候!
答案 1 :(得分:0)
感谢。 adb shell with top命令显示进程
但是
p = Runtime.getRuntime().exec("top");
不行吗?
我不会因为我的应用冻结而导致
或top -n 1未修复?