我想显示应用程序日志。 在终端上我使用了这个命令:adb logcat -s brief *:V | grep“pid” 它显示我的应用程序日志。
pid表示在logcat表中显示的应用程序pid。
public static String logProc()
{
String value = "";
try
{
String cmd[] = {"logcat","-s","brief","*:V","|","grep",
android.os.Process.myPid()+""};
Process p = Runtime.getRuntime().exec(cmd,null, null);
BufferedReader reader = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String line = reader.readLine();
while (line != null)
{
value += line + "\n";
line = reader.readLine();
}
p.waitFor();
}
catch (IOException e1)
{
e1.printStackTrace();
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}
答案 0 :(得分:1)
大多数官方Android版本都没有附带grep(编辑:现在更新版本)
如果您需要额外的命令,可以安装busybox - 如果没有root,则必须将其放在备用位置。
您还有另外一个问题,即您正在尝试执行()shell命令以通过管道连接两个程序,除非您执行shell解释器并为其提供该命令,否则这不会起作用。或者您可以自己设置管道并执行两个程序。
但是既然你正在编写一个程序,那么在java代码中进行模式匹配可能会更简单。