管道(“|”)不适用于 Android 中的 ProcessBuilder

问题描述 投票:0回答:0

我想使用 grep 在 logcat 中搜索特定关键字:

ProcessBuilder(
    listOf("logcat", "-d", "|", "grep", "<regex-match>")
).start().inputStream.use {
    BufferedReader(InputStreamReader(it)).forEachLine {
        ...
    }
}

但是,我后来发现这并没有真正起作用,原因是管道导致另一个过程。 JDK 9 offers startPipeline() 方法来解决这个问题。

我没有看到我的 android 使用此 API 构建。鉴于升级 JDK 版本对我来说是一个漫长的过程(如果可能的话),是否有一种方法可以用当前的 API 实现相同的结果?

PS:我尝试循环输出“logcat -d”并进行过滤,但这需要太多时间。

java android processbuilder
© www.soinside.com 2019 - 2024. All rights reserved.