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 がなければ、別の場所に配置する必要があります。

パイプを介して2つのプログラムを接続するためにシェルコマンドを exec() しようとしているという追加の問題があります。これは、シェルインタープリターを実行してそのコマンドを与えない限り機能しません。または、自分でパイプをセットアップして、両方のプログラムを実行することもできます。

しかし、プログラムを作成しているので、Java コードでパターン マッチングを行う方がおそらく簡単でしょう。

于 2012-07-02T17:13:21.470 に答える