как контролировать андроид adb logcat и делать grep?

1

У меня есть приложение, которое может печатать несколько журналов в системе журналов Android, у него есть некоторые ключевые слова, которые я хочу контролировать, чего я хочу достичь:

Вывод монитора "adb logcat", если есть новая строка, содержащая ключевое слово, распечатайте новую строку.

Это что-то вроде adb logcat | grep "command", но, как вы знаете, adb logcat будет блокироваться, поэтому мой grep не сможет увидеть какой-либо вход. Это можно сделать с помощью простой оболочки script?

  • 0
    adb logcat | grep "Веб-консоль" #worksforme
Теги:
adb

3 ответа

4
Лучший ответ

Если вы посмотрите http://developer.android.com/guide/developing/tools/adb.html, в разделе под заголовком Выход журнала фильтрации, это описывает adb собственные возможности фильтрации. Это, вероятно, сработает для вас. Вы можете указать конкретный тег в своих операторах журнала (что было бы по существу тем, что вы отправили бы на bash), а затем просто фильтровать эти теги. Например:

android.util.Log.v("filter1","<this is my log statement>");

будет кодом, и тогда вы выполните

adb logcat filter1:V

для фильтрации этого вывода.

EDIT: вы всегда можете использовать это для дампа в файл, а затем запустите bash.

  • 0
    Спасибо, но выглядит не достаточно идеально. Можно ли очистить журнал каждый раз, когда я записываю файл? В противном случае одна и та же строка может быть обработана несколько раз ...
  • 4
    Вы можете запустить adb logcat -c чтобы очистить журнал между запусками. Также вы можете запустить adb logcat -d для adb logcat -d журнала на экран и немедленного выхода, что может быть тем, что вам нужно для загрузки его в bash .
Показать ещё 1 комментарий
0

Чтобы просмотреть logcat для определенного процесса:

 adb logcat | grep <process_id>

Для просмотра logcat для определенного процесса с именем тега:

 adb logcat | grep <process_id> | grep -s "TAG NAME"

|     acts as a seperator for combining different queries.
0

вы можете попробовать следующим образом

log_1=$(adb shell dumpsys meminfo com.azoi.azoitv | grep Views:) 
echo $log_1

если вы хотите выполнить непрерывный цикл, вы можете попробовать следующее:

while :
do
    log_1=$(adb shell dumpsys meminfo com.azoi.azoitv | grep Views:)
    echo  $log_1
done

Ещё вопросы

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