学习啦 > 学习电脑 > 操作系统 > Linux教程 > android如何实现运行底层linux外部命令

android如何实现运行底层linux外部命令

时间: 春健736 分享

android如何实现运行底层linux外部命令

学习啦在线学习网   Android继承了Linux权限严格的优点,那么大家知道android如何实现运行底层linux外部命令吗?下文学习啦小编就分享了android实现运行底层linux外部命令的方法,希望对大家有所帮助。

  android实现运行底层linux外部命令方法

  android的底层实际是Linux内核,当然在shell环境下可以运行linux命令,尤其是经过root处理的android系统,基本上可以通过调用linux命令完全控制手机,下面的RootCmd.java代码就是实现运行linux外部命令。

学习啦在线学习网   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

  {

学习啦在线学习网   //执行linux命令并且输出结果

学习啦在线学习网   protected static Vector execRootCmd(String paramString)

  {

  Vector localVector = new Vector();

  try

  {

学习啦在线学习网   Process localProcess = Runtime.getRuntime().exec("su ");//经过Root处理的android系统即有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();

  }

  }

学习啦在线学习网   //执行linux命令但不关注结果输出

学习啦在线学习网   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是否已经root,即是否获取root权限

学习啦在线学习网   protected static boolean haveRoot()

  {

学习啦在线学习网   int i = execRootCmdSilent("echo test"); //通过执行测试命令来检测

学习啦在线学习网   if (i != -1) return true;

  retrun false;

  }

  }

学习啦在线学习网 android如何实现运行底层linux外部命令相关文章:

1.必学100个常用linux命令大全

2.LINUX操作系统常用命令有哪些

3.Linux系统常用命令合集

4.linuxftp常用命令有哪些

5.Linux必学的几个个命令

6.初学者需要学会Linux的命令

1369138