将shell脚本连接到Android应用程序的最佳方法是什么?

时间:2014-02-27 02:47:03

标签: android api shell

目前我有使用终端模拟器应用程序在android上运行的shell脚本命令。需要准备一个应用程序从我的android应用程序调用shell脚本显示我的应用程序上的shell脚本的结果。任何人都可以建议最好的方法。

1 个答案:

答案 0 :(得分:0)

来自here

的已使用代码
    public void runShellCommand(String[] cmds) throws Exception {
        Process p = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(p.getOutputStream());
        InputStream is = p.getInputStream();
        for (String temp : cmds) {
            os.writeBytes(temp+"\n");
            int read= 0;
            byte[] buff = new byte[4096];

        // if cmd requires an output
       // due to the blocking behaviour of read(...)
        boolean cmdRequiresAnOutput = true;
        if (cmdRequiresAnOutput) {
            while( is.available() <= 0) {
                try { Thread.sleep(200); } catch(Exception ex) {}
            }

            while( is.available() > 0) {
                read = is.read(buff);
                if ( read <= 0 ) break;
                String str = new String(buff,0,read);
                console.println("#> "+str);
        }
    }
}        
os.writeBytes("exit\n");
os.flush();
}

长时间使用的命令需要休眠。