1

我想显示应用程序日志。在终端上我使用了这个命令: 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;
}
4

1 回答 1

1

大多数官方 Android 版本不附带 grep(编辑:现在有更新的版本)

如果你想要额外的命令,你可以安装busybox - 如果没有root,你必须把它放在另一个位置。

你还有一个额外的问题是你试图 exec() 一个 shell 命令来通过管道连接两个程序,除非你执行一个 shell 解释器并给它那个命令,否则它不会工作。或者您可以自己设置管道并执行这两个程序。

但是由于您正在编写程序,因此在 java 代码中进行模式匹配可能会更简单。

于 2012-07-02T17:13:21.470 回答