Когда разработчик просит «прислать логи» после вылета приложения, чаще всего речь идёт о выводе logcat — системного журнала Android, куда пишутся сообщения ОС и приложений. Снять его можно тремя рабочими способами: через ADB с компьютера, через встроенный «Отчёт об ошибке» в меню разработчика или через приложение с правом READ_LOGS. Ниже — пошаговые инструкции для каждого метода.
Выбор способа зависит от ситуации: для живой диагностики удобнее ADB, для разового сбора после сбоя — отчёт об ошибке, а если компьютера под рукой нет, помогут приложения вроде Logcat Reader. Разберём всё по порядку, начиная с подготовки устройства.
Включение режима разработчика и отладки по USB
Любой способ снятия логов начинается с активации меню разработчика. Откройте Настройки → О телефоне и найдите пункт Номер сборки (на некоторых прошивках он находится в разделе «Версия ПО» или «Сведения о ПО»). Нажмите на него семь раз подряд — система попросит ввести PIN-код и сообщит, что режим разработчика включён.
После этого в настройках появится раздел Для разработчиков (обычно внутри «Система» или «Расширенные настройки», точное расположение зависит от оболочки). В нём активируйте переключатель Отладка по USB. Именно эта опция разрешает компьютеру обмениваться данными с устройством через ADB.
⚠️ Внимание: отладка по USB даёт подключённому компьютеру расширенный доступ к устройству. Включайте её только на время сбора логов и никогда не подтверждайте запрос RSA-отпечатка на чужих ПК.
Установка ADB на компьютер
ADB (Android Debug Bridge) распространяется в составе пакета SDK Platform-Tools, который Google публикует бесплатно для Windows, macOS и Linux. Скачайте архив с официального сайта Android Developers и распакуйте в удобную папку — установка не требуется, утилита работает как портативная.
Для Windows дополнительно может понадобиться USB-драйвер производителя смартфона, если устройство не определяется системой. Откройте терминал или командную строку в папке с Platform-Tools и проверьте подключение:
adb devices
На экране телефона появится запрос «Разрешить отладку по USB?» — отметьте «Всегда разрешать с этого компьютера» и подтвердите. Если команда вернула серийный номер устройства со статусом device, всё готово к работе.
Снятие логов через adb logcat
Основная команда для чтения системного журнала — adb logcat. Она выводит поток сообщений в реальном времени прямо в терминал. Чтобы сохранить лог в файл, перенаправьте вывод:
adb logcat -d > logcat.txt
Ключ -d выгружает текущий буфер и завершает работу, без него лог пишется непрерывно до нажатия Ctrl+C. Перед началом записи полезно очистить старый буфер командой adb logcat -c, чтобы в файле остались только свежие события. Затем воспроизведите проблему на телефоне (запустите «падающее» приложение) и остановите запись.
Для фильтрации по конкретному приложению удобно ограничить вывод по тегу или уровню важности. Например, так выглядит вывод только ошибок:
adb logcat *:E > errors.txt
☑️ Снятие лога через ADB за 5 шагов
Чтобы лог был полезен разработчику, ошибку нужно воспроизвести во время записи — без этого в журнале не окажется нужного стека падения.
Отчёт об ошибке без компьютера
В меню Для разработчиков есть встроенная функция «Отчёт об ошибке» (Bug report). Она собирает полный снимок состояния системы: логи, дампы сервисов, информацию о памяти и процессах. Доступны два варианта — интерактивный (быстрее, без лишних данных) и полный.
После запуска сбор занимает несколько минут, по завершении в шторке появится уведомление с готовым ZIP-архивом. Его можно сразу отправить через «Поделиться» — по почте, в мессенджер или в облако. Внутри архива основной текстовый файл с выводом logcat и дампами системных служб.
- 📱 Подходит, когда под рукой нет компьютера с ADB
- 📦 Включает не только logcat, но и диагностику системы
- ⏱️ Полный отчёт собирается дольше интерактивного
- 🔒 Может содержать личные данные — проверьте перед отправкой
Снятие логов приложением на самом устройстве
Начиная с Android 4.1, обычные приложения не могут читать чужие логи без специального разрешения READ_LOGS, которое выдаётся только через ADB. Поэтому приложения вроде Logcat Reader после установки просят выполнить одну команду с компьютера:
adb shell pm grant com.dp.logcatapp android.permission.READ_LOGS
Имя пакета в команде должно соответствовать установленному приложению — уточните его на странице программы в магазине. После выдачи разрешения логи можно записывать, фильтровать и экспортировать прямо на телефоне, без ПК. На устройствах с root-доступом такие приложения работают без предварительной настройки.
⚠️ Внимание: разрешение READ_LOGS даёт приложению доступ к журналам всех программ, где могут встречаться токены, идентификаторы и другая чувствительная информация. Выдавайте его только проверенным инструментам и отзывайте после использования.
Сравнение способов снятия логов
Чтобы выбрать подходящий метод, сверьтесь с таблицей: в ней собраны ключевые отличия трёх основных подходов.
| Способ | Нужен ПК | Нужен root | Когда использовать |
|---|---|---|---|
| adb logcat | Да | Нет | Живая отладка, фильтрация, точная запись момента ошибки |
| Отчёт об ошибке | Нет | Нет | Разовый сбор после сбоя, отправка разработчику |
| Приложение-логгер | Только для выдачи разрешения | Нет (с разрешением) | Регулярный сбор логов без компьютера |
| Логи через root | Нет | Да | Расширенный доступ, включая буферы ядра |
Типичные проблемы при снятии логов
Если adb devices показывает пустой список, проверьте кабель — некоторые шнуры поддерживают только зарядку, без передачи данных. Также помогает смена режима USB-подключения на телефоне (например, на «Передача файлов / MTP») и повторное подтверждение RSA-отпечатка после отзыва отладочных разрешений в меню разработчика.
Статус unauthorized означает, что на телефоне не подтверждён запрос на отладку — разблокируйте экран и посмотрите диалоговое окно. А если лог обрывается или устройство отваливается посреди записи, попробуйте другой USB-порт, желательно напрямую, без хабов. На ноутбуках также стоит отключить временное энергосбережение USB-портов в настройках ОС.
- 🔌 Используйте кабель с поддержкой передачи данных
- 🔓 Держите экран телефона разблокированным при первом подключении
- 🔄 Перезапустите ADB-сервер командой
adb kill-serverпри зависаниях - 💾 Убедитесь, что на устройстве достаточно свободной памяти для отчёта
Какие буферы умеет читать logcat
Помимо основного буфера main, logcat умеет читать system (системные сообщения), crash (только падения), radio (модуль связи) и events. Например, команда adb logcat -b crash -d выгрузит только журнал сбоев — удобно, когда нужен исключительно стек падения приложения без лишнего шума.
Частые вопросы
Можно ли снять логи без рута и без компьютера?
Да. Встроенная функция «Отчёт об ошибке» в меню разработчика не требует ни root, ни ПК — архив с логами формируется прямо на устройстве. Ограничение: нельзя вести запись в реальном времени с гибкой фильтрацией, как в logcat.
Безопасно ли отправлять логи разработчику?
В целом да, но журналы могут содержать фрагменты личных данных: имена учётных записей, идентификаторы устройства, иногда токены. Перед отправкой имеет смысл открыть файл в текстовом редакторе и бегло просмотреть содержимое, особенно полный отчёт об ошибке.
Почему adb не видит телефон?
Частые причины: отключена отладка по USB, кабель только для зарядки, не подтверждён RSA-отпечаток на экране телефона или отсутствует USB-драйвер на Windows. Проверяйте эти пункты по очереди — в большинстве случаев проблема решается на одном из них.
Сколько места занимает лог и как долго его писать?
Текстовый лог за пару минут записи обычно занимает от нескольких сотен килобайт до нескольких мегабайт. Держать запись дольше, чем нужно для воспроизведения ошибки, нет смысла — лишний объём только затруднит анализ.
Чем отличается logcat от отчёта об ошибке?
Logcat — это поток системных сообщений, который можно читать и фильтровать в реальном времени. Отчёт об ошибке — это архив-снимок: туда входят те же логи плюс дампы системных служб, состояние памяти и процессов. Для диагностики вылета приложения обычно хватает logcat, для системных зависаний лучше полный отчёт.