выполнить команду трубы в Android?

1

Я хочу отображать журналы приложений. На терминале я использовал эту команду: 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;
}
  • 1
    И в чем проблема?
  • 0
    @Deepali: проблема в том, что он не показывает никаких выходных данных. Он непрерывно отображает следующие журналы 06-14 15: 16: 43.104: I / dalvikvm-heap (591): увеличение кучи (в случае фрагмента) до 4,535 МБ для выделения 881344 байт 06 -14 15: 16: 43.154: D / dalvikvm (591): GC_FOR_MALLOC освободил 3 объекта / 587632 байта за 37 мс
Показать ещё 1 комментарий
Теги:
logging
android-logcat

1 ответ

1

Большинство официальных сборок Android не поставляются с grep (Edit: более свежие версии теперь делают)

Вы можете установить busybox, если вам нужны дополнительные команды - без root вы должны были бы поместить его в другое место.

У вас есть дополнительная проблема, которую вы пытаетесь выполнить exec() командой оболочки для подключения двух программ через каналы, которые не будут работать, если вы не выполняете интерпретатор оболочки и не передаете ей эту команду. Или вы можете настроить трубу самостоятельно и выполнить обе программы.

Но поскольку вы пишете программу, вероятно, было бы проще выполнить сопоставление шаблонов в Java-коде.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню