Используется ли Android Studio для просмотра логов
Что проверяют
Умеете ли вы сами достать лог для баг-репорта или каждый раз зовёте разработчика. Ответ «да» здесь только начало: ждут рассказа про Logcat, фильтры и adb. Следом спрашивают, как найти причину краша или что делать, если в релизной сборке логов нет.
Как отвечать
Да, в Android Studio для этого есть окно Logcat (View, Tool Windows, Logcat). Чтобы оно увидело телефон, на нём включают отладку по USB в параметрах разработчика или беспроводную отладку, она есть с Android 11. Что стоит знать:
- уровни: Verbose, Debug, Info, Warn, Error, Assert. Для поиска проблем обычно начинают с Warn и выше;
- фильтры: современный Logcat понимает запросы вида
package:mine,level:ERROR,tag:OkHttp,message:timeout, исключение через минус перед ключом, например-tag:chatty. Фильтры можно сохранять; - краши: ищут
FATAL EXCEPTIONс тегомAndroidRuntime, для ANR смотрят сообщенияActivityManager, а полный отчёт с трассами потоков даётadb bugreport; - командная строка: Android Studio не обязательна, хватит platform-tools.
adb logcat -cочищает буфер перед воспроизведением,adb logcat -d > log.txtсохраняет лог в файл,adb logcat --pid=$(adb shell pidof -s <пакет>)оставляет только ваш процесс,adb logcat '*:E'выводит только ошибки.
Для баг-репорта порядок простой: очистить буфер, воспроизвести, сохранить лог и приложить фрагмент вокруг ошибки вместе со временем, версией сборки и моделью устройства.
Где спотыкаются
Прикладывают к задаче весь лог на десятки тысяч строк. Разработчику нужен фрагмент со стек-трейсом и несколько секунд перед ним.
Фильтруют только по своему пакету и теряют системные сообщения. Причина ANR или убийства процесса по памяти часто пишется от имени системы, а не приложения.
Не знают, что в релизной сборке логов почти нет: вызовы Log часто вырезают через R8 или выводят только в debug. Для релиза смотрят отчёты о падениях в Crashlytics, Sentry или AppMetrica, а для воспроизведения просят debug-сборку.