adb shell读取返回值_android代码执行adb shell终端命令(linux命令)并返回执行结果...

本文介绍了如何在Android应用中自动化执行adb shell命令,通过Java的Runtime类获取命令执行结果。提供了一个名为RootCmd的工具类,用于执行root权限的命令,并展示了如何在app启动时修改USB目录权限。但遇到部分命令如`fdisk`无法执行的问题。
摘要由CSDN通过智能技术生成

在做Android开发板相关的开发需求的时候,我们有的时候需要去到Android系统的一个linux终端(adbshell)里面来执行一些命令,以便于查看部分文件内容或者修改部分文件权限等需求,通常我们可以使用Android studio自带的terminal工具运行先adb shell 命令来进行

terminal.png

这样不好的就是我们可能有的操作就要每次设备重启的时候都要手动的敲一遍这样的代码,十分麻烦。那么怎么才能让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命令

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值