getRuntime Android展示流程

时间:2015-02-27 22:45:38

标签: android shell process

我正在做一个简单的应用程序,它显示了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;

    }

为什么某些命令应用程序有效,而顶部例如不?

2 个答案:

答案 0 :(得分:0)

如果您已连接设备,请转到shell,在计算机的命令行中使用以下命令查看可用的命令:

  

adb shell

乍一看,你将能够告诉他们" top"是一项工作,显示和更新有关流程的排序信息"并且它会阻止shell命令行,因此,在您的应用程序中锁定执行该命令的线程。

希望它有帮助!

问候!

答案 1 :(得分:0)

感谢。 adb shell with top命令显示进程

但是

p = Runtime.getRuntime().exec("top");

不行吗?

我不会因为我的应用冻结而导致

或top -n 1未修复?