我们如何从Android应用程序执行shell脚本文件

时间:2011-02-08 11:45:12

标签: android shell

请告诉我可以从My Android应用程序运行shell脚本文件。

并从脚本文件中读取数据。

如果有可能继续,请给我一些指导。

2 个答案:

答案 0 :(得分:0)

您可以使用此代码段(来自Aaron C)

void execCommandLine(String command)
    {
        Runtime runtime = Runtime.getRuntime();
        Process proc = null;
        OutputStreamWriter osw = null;

        try
        {
            proc = runtime.exec("su");
            osw = new OutputStreamWriter(proc.getOutputStream());
            osw.write(command);
            osw.flush();
            osw.close();
        }
        catch (IOException ex)
        {
            Log.e("execCommandLine()", "Command resulted in an IO Exception: " + command);
            return;
        }
        finally
        {
            if (osw != null)
            {
                try
                {
                    osw.close();
                }
                catch (IOException e){}
            }
        }

        try 
        {
            proc.waitFor();
        }
        catch (InterruptedException e){}

        if (proc.exitValue() != 0)
        {
            Log.e("execCommandLine()", "Command returned error: " + command + "\n  Exit code: " + proc.exitValue());
        }
    }

但我认为这需要root访问权。

您也可以尝试使用GScript

答案 1 :(得分:0)

我一直在使用它在我的Android应用程序中运行shell脚本。我还没弄明白该怎么做才能将输出指向我想要的地方。你不需要root,这就是我发帖的原因。

 Process process = Runtime.getRuntime().exec("top -n 1");
 //Get the output of top so that it can be read
 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));