Я хочу отображать журналы приложений. На терминале я использовал эту команду: adb logcat -s short *: V | grep "pid" Он отображает журналы приложений.
pid означает приложение pid, которое отображается в таблице logcat.
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;
}
Большинство официальных сборок Android не поставляются с grep (Edit: более свежие версии теперь делают)
Вы можете установить busybox, если вам нужны дополнительные команды - без root вы должны были бы поместить его в другое место.
У вас есть дополнительная проблема, которую вы пытаетесь выполнить exec() командой оболочки для подключения двух программ через каналы, которые не будут работать, если вы не выполняете интерпретатор оболочки и не передаете ей эту команду. Или вы можете настроить трубу самостоятельно и выполнить обе программы.
Но поскольку вы пишете программу, вероятно, было бы проще выполнить сопоставление шаблонов в Java-коде.