Что такое логи ADB и как с ними работать?

«Что такое логи ADB и как с ними работать?» — вопрос из категории Мобильное тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Логи ADB — это системные журналы Android, доступные для просмотра и анализа через инструмент Android Debug Bridge (ADB). Они являются основным источником информации для отладки приложений и системы.

Основные буферы логов (log buffers):

  • main: Основной журнал, куда пишут большинство приложений (уровни V, D, I, W, E).
  • system: Сообщения от компонентов Android OS.
  • events: Системные события в специальном бинарном формате.
  • crash: Логи падений (крашей).
  • kernel: Логи ядра Linux (доступны через adb shell dmesg).

Базовые команды adb logcat:

# Вывести логи в реальном времени
adb logcat

# Вывести логи с метками времени и фильтром по тегу/уровню
adb logcat -v time *:I

# Сохранить логи в файл
adb logcat -v time > android_log.txt

# Очистить буфер логов
adb logcat -c

# Вывести логи только для определенного буфера (например, system)
adb logcat -b system

# Фильтрация по тегу (TAG) и уровню (например, только ошибки для тега "MyApp")
adb logcat MyApp:E *:S
# *:S ("silence") заглушает все остальные теги.

Практическое применение в тестировании:

  1. Отладка падений (Crashes): Поиск FATAL EXCEPTION и стека вызовов (stack trace).
  2. Анализ ANR (Application Not Responding): Поиск в логах ключевых строк ANR in.
  3. Мониторинг собственных сообщений: Добавление логов в код приложения (через Log.d(), Log.e()) и их фильтрация по уникальному тегу.
  4. Сбор логов для баг-репорта: Сохранение полного лога в момент воспроизведения дефекта.