gpt4 book ai didi

java - Pipe ("|")和 grep 在 Android 中的 ProcessBuilder 中不起作用

转载 作者:行者123 更新时间:2023-12-01 17:36:22 32 4
gpt4 key购买 nike

我想获取 Android 上的总 RAM:

       private String getTotalRAM() 
{
ProcessBuilder cmd;
String result="";

try{
String[] args = {"/system/bin/sh", "-c", "cat -n /proc/meminfo | grep MemTotal"};
cmd = new ProcessBuilder(args);

Process process = cmd.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
while(in.read(re) != -1){
System.out.println(new String(re));
result = result + new String(re);
}
in.close();
} catch(IOException ex){
ex.printStackTrace();
}
return result;
}

如果没有 grep MemTotal,cat 会返回有关内存的完整信息。当我只想用 grep 得到一行时,我什么也得不到。我怎样才能解决这个问题?我现在只想获取总可用 RAM。

最佳答案

各种重定向( |>< 、...)均由 shell 处理。如果您不调用 shell,则无法使用它们。

一个干净的解决方案是阅读 /proc/meminfo在您的 Java 代码中简单搜索字符串 MemTotal手动。该代码不会比您现在正在做的代码长很多,并且需要的资源也会少得多。

关于java - Pipe ("|")和 grep 在 Android 中的 ProcessBuilder 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789266/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com