代码内执行adb shell指令

方法

在代码中执行adb shell指令主要是通过Runtime.getRuntime().exec方法来执行指令,结果可以从Process的输入流中获取到。

示例代码

示例方法如下:

    fun actionAdbShell(cmd: String) {
        var s = StringBuilder()
        try {
            var process: Process = Runtime.getRuntime().exec(" $cmd")
            var inputStream = process.inputStream
            var bufferedReader = BufferedReader(InputStreamReader(inputStream))
            try {
                process.waitFor()
            } catch (e: java.lang.Exception) {
                e.printStackTrace()
            }
            var line: String? = bufferedReader.readLine()
            while (line != null) {
                s.append(line).append("\n");
                line = bufferedReader.readLine()
            }
            inputStream.close()
            bufferedReader.close()
        } catch (e: Exception) {
            e.printStackTrace()
            LogUtil.d("异常信息:" + e.message)
        }
        LogUtil.d("执行结果:$s")
    }

测试,例如要查看设备属性信息,调用如下:

AdbUtil.actionAdbShell("getprop")

输出部分结果如下:

[DEVICE_PROVISIONED]: [1]
    [aaudio.hw_burst_min_usec]: [2000]
    [aaudio.mmap_exclusive_policy]: [2]
    [aaudio.mmap_policy]: [2]
    [af.fast_track_multiplier]: [1]
    [audio.deep_buffer.media]: [true]
    [audio.offload.buffer.size.kb]: [32]
    [audio.offload.gapless.enabled]: [true]
    [audio.offload.min.duration.secs]: [30]
    [audio.offload.video]: [true]
    [audio.sys.mute.latency.factor]: [2]
    [audio.sys.noisy.broadcast.delay]: [500]
    [audio.sys.offload.pstimeout.secs]: [3]
    [audio.sys.routing.latency]: [0]
    [audio_para_version]: [J19S-Audiopara-cn-V01-20200918]

可以看到能够查看到对应指令的执行结果,和adb shell getprop一样。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值