У меня есть приложение, которое может печатать несколько журналов в системе журналов Android, у него есть некоторые ключевые слова, которые я хочу контролировать, чего я хочу достичь:
Вывод монитора "adb logcat", если есть новая строка, содержащая ключевое слово, распечатайте новую строку.
Это что-то вроде adb logcat | grep "command", но, как вы знаете, adb logcat будет блокироваться, поэтому мой grep не сможет увидеть какой-либо вход. Это можно сделать с помощью простой оболочки script?
Если вы посмотрите 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
.
adb logcat -c
чтобы очистить журнал между запусками. Также вы можете запустить adb logcat -d
для adb logcat -d
журнала на экран и немедленного выхода, что может быть тем, что вам нужно для загрузки его в bash
.
Чтобы просмотреть logcat для определенного процесса:
adb logcat | grep <process_id>
Для просмотра logcat для определенного процесса с именем тега:
adb logcat | grep <process_id> | grep -s "TAG NAME"
| acts as a seperator for combining different queries.
вы можете попробовать следующим образом
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