코드에서 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해당 명령어 의 실행 결과를 볼 수 있음을 알 수 있으며, 이는

추천

출처blog.csdn.net/cat_is_so_cute/article/details/125739583