在做Android开发板相关的开发需求的时候,我们有的时候需要去到Android系统的一个linux终端(adbshell)里面来执行一些命令,以便于查看部分文件内容或者修改部分文件权限等需求,通常我们可以使用Android studio自带的terminal工具运行先adb shell 命令来进行
这样不好的就是我们可能有的操作就要每次设备重启的时候都要手动的敲一遍这样的代码,十分麻烦。那么怎么才能让app启动的时候自己来运行这些命令呢?
一番查资料,终于找到了,主要是使用到了java.lang.Process这个类,通过使用Runtime.getRuntime().exec(“su”);这个方法,我们就能获得Process的一个实例,通过这个Process的实例,我们就可以获取命令终端的输入输出流来提交命令和获取命令执行结果啦。
RootCmd工具类注意:
Runtime.getRuntime().exec("su");
这行代码只能在已经root的设备上才能运行,没有root的设备运行会抛出异常。
下面来看它的具体实现代码吧,我把它封装成了一个工具类:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import android.util.Log;
/**
* Android运行linux命令
*/