国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習啦 > 學(xué)習電腦 > 操作系統(tǒng) > Linux教程 > android如何實現(xiàn)運行底層linux外部命令

    android如何實現(xiàn)運行底層linux外部命令

    時間: 春健736 分享

    android如何實現(xiàn)運行底層linux外部命令

      Android繼承了Linux權(quán)限嚴格的優(yōu)點,那么大家知道android如何實現(xiàn)運行底層linux外部命令嗎?下文學(xué)習啦小編就分享了android實現(xiàn)運行底層linux外部命令的方法,希望對大家有所幫助。

      android實現(xiàn)運行底層linux外部命令方法

      android的底層實際是Linux內(nèi)核,當然在shell環(huán)境下可以運行l(wèi)inux命令,尤其是經(jīng)過root處理的android系統(tǒng),基本上可以通過調(diào)用linux命令完全控制手機,下面的RootCmd.java代碼就是實現(xiàn)運行l(wèi)inux外部命令。

      package my.android.code;

      import android.os.Environment;

      import dalvik.annotation.Signature;

      import java.io.BufferedReader;

      import java.io.DataInputStream;

      import java.io.DataOutputStream;

      import java.io.File;

      import java.io.FileReader;

      import java.io.InputStream;

      import java.io.OutputStream;

      import java.util.Vector;

      public final class RootCmd

      {

      //執(zhí)行l(wèi)inux命令并且輸出結(jié)果

      protected static Vector execRootCmd(String paramString)

      {

      Vector localVector = new Vector();

      try

      {

      Process localProcess = Runtime.getRuntime().exec("su ");//經(jīng)過Root處理的android系統(tǒng)即有su命令

      OutputStream localOutputStream = localProcess.getOutputStream();

      DataOutputStream localDataOutputStream = new DataOutputStream(localOutputStream);

      InputStream localInputStream = localProcess.getInputStream();

      DataInputStream localDataInputStream = new DataInputStream(localInputStream);

      String str1 = String.valueOf(paramString);

      String str2 = str1 + "\n";

      localDataOutputStream.writeBytes(str2);

      localDataOutputStream.flush();

      String str3 = localDataInputStream.readLine();

      localVector.add(str3);

      localDataOutputStream.writeBytes("exit\n");

      localDataOutputStream.flush();

      localProcess.waitFor();

      return localVector;

      }

      catch (Exception localException)

      {

      localException.printStackTrace();

      }

      }

      //執(zhí)行l(wèi)inux命令但不關(guān)注結(jié)果輸出

      protected static int execRootCmdSilent(String paramString)

      {

      try

      {

      Process localProcess = Runtime.getRuntime().exec("su");

      Object localObject = localProcess.getOutputStream();

      DataOutputStream localDataOutputStream = new DataOutputStream((OutputStream)localObject);

      String str = String.valueOf(paramString);

      localObject = str + "\n";

      localDataOutputStream.writeBytes((String)localObject);

      localDataOutputStream.flush();

      localDataOutputStream.writeBytes("exit\n");

      localDataOutputStream.flush();

      localProcess.waitFor();

      localObject = localProcess.exitValue();

      return localObject;

      }

      catch (Exception localException)

      {

      localException.printStackTrace();

      }

      }

      //判斷機器Android是否已經(jīng)root,即是否獲取root權(quán)限

      protected static boolean haveRoot()

      {

      int i = execRootCmdSilent("echo test"); //通過執(zhí)行測試命令來檢測

      if (i != -1) return true;

      retrun false;

      }

      }

    android如何實現(xiàn)運行底層linux外部命令相關(guān)文章:

    1.必學(xué)100個常用linux命令大全

    2.LINUX操作系統(tǒng)常用命令有哪些

    3.Linux系統(tǒng)常用命令合集

    4.linuxftp常用命令有哪些

    5.Linux必學(xué)的幾個個命令

    6.初學(xué)者需要學(xué)會Linux的命令

    1369138