2013-02-07 3 views
2

У меня есть одно Android-устройство, прикрепленное к компьютеру, и открыли несколько оболочек, которые отображают информацию о logcat. Все работают со своим конкретным фильтром. Так что мой вопрос сейчас, где применяются эти фильтры? Уже по телефону, так что только отфильтрованные сообщения отправляются через usb. Или они применяются на компьютере на сервере или клиенте adb? Я просто хочу предотвратить одновременное использование нескольких нефильтрованных потоков logcat через usb, так как у меня ограничено bandwitdh. Thanksгде применяются фильтры логарифма?

ответ

1

Данные извлекаются из буферов ядра с помощью команды logcat на устройстве. Если вы запустите

% adb logcat -\?

вы можете увидеть информацию об использовании, которая включает в себя описание «filterspecs». Их можно установить в командной строке или установить ANDROID_LOG_TAGS. Например:

% adb logcat '*:W'

покажет вам только сообщения на предупреждения или уровня ошибок.

Хитрость здесь в том, что adb logcat является только сокращением для adb shell logcat, с добавленным бонусом распространения вашей переменной окружения ANDROID_LOG_TAGS на устройство. Фильтрация выполняется командой logcat, которая просто сбрасывает вывод текста по adb. Выход команды logcat не получает никакого специального лечения.

Итак, ответ на ваш вопрос: фильтрация происходит на устройстве, индивидуально для каждого окна.

DDMS работает по-разному.

1

Или они применяются на компьютере на сервере или клиенте adb?

Они применяются любым приложением, представляющим информацию LogCat.

1

В настоящее время невозможно использовать такую ​​же работу на разных устройствах. Если у вас есть разные сборки, вы можете применить фильтр в соответствии с именем или версией устройства.

Как U хотите сделать это, это может быть достигнуто с помощью некоторых трюков. Log.v(LOG_TAG,"message"); В вашем LOG_TAG добавьте идентификатор устройства, который может быть идентифицирован через TelephonyManager.

И добавьте фильтр, используя его.

+1

Да, я думаю, его там нет .. –

1

Android сохраняет информацию о журнале на устройстве в 4 разных буфера (журнал событий, системный журнал, журнал радио, главный журнал). После этого демона adbd может получить доступ к этой информации и отправить ее клиенту. Таким образом, только на стороне клиента вы можете фильтровать информацию, потому что на телефоне сохраняется вся информация.

0

Фильтры применяются на телефоне. Таким образом, вы вводите фильтр для не существующего тега logcat, тогда никакие трафики не переходят через USB. Но каждый лог-код, открытый с помощью командной строки cmd, создает новый поток, который увеличивает общий трафик.

Смежные вопросы