Як я можу переглянути та вивчити журнал Android?


109

У системному журналі Android є багато цікавого, що корисно у багатьох напрямках

  • знайти першопричини проблем
  • ідентифікувати недоброякісні програми

Як я можу переглянути та вивчити журнал Android?


Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
— Матвій

Відповіді:


59

Android 4.1 і новіші

Кращим способом є завантаження SDK та використання adb logcat(потрібно активувати "параметри розробника" на пристрої).

Існують програми для перегляду повного системного журналу, однак вони працюють лише на пристроях з укоріненими системами або вимагають видачі команди вручну, adbщоб змусити їх працювати. Для отримання додаткової інформації див. Це питання.

Android 4.0 і новіші

Ви можете завантажити SDK і використовувати adb logcatабо отримати Logcat Extrem з магазину Google Play, який відображає журнал безпосередньо на вашому телефоні.


2
Крім того, ви можете використовувати термінальний емулятор з командою "logcat> /sdcard/log.txt" для безперервного запису журналу у файл на SD-картці. Це може допомогти з’ясувати проблеми зі випадковими перезавантаженнями.
— Чах

Влучне зауваження. Деякі телефони, як правило, спамують журнал, наповнений тривіальною інформацією, тому, якщо ви хочете звести до мінімуму розмір файлів і даних, пройдіть, перегляньте розділ "Фільтрування вихідного журналу" на developer.android.com/guide/developing/tools/adb.html #logcat
— onik

LogCat Apps не працює з JellyBean. Google змінив API для Android, додатки більше не мають дозволу на читання журналів інших програм, окрім власних.
— Леандрос

Я створив просту утиліту для збору журналів з ПК: gist.github.com/hrj/5983971
— HRJ

Logcat Extreme - це приємний додаток для перегляду журналу
— Arpit Patel,

57

Розташування журналу-файлів

Існує кілька каталогів, де можуть з’являтися журнали (включаючи журнали, пов'язані з збоями) - не всі вони стандартизовані (тобто деякі можуть бути специфічними для ROM).

  • /data/anr: Деякі файли трасування, здається, потрапляють сюди (Dalvik записує сюди сліди стека в ANR, тобто "Програма не відповідає", наприклад "Force-Close"; див., Наприклад, витяги журналу тут )
  • /data/dontpanicЗдається, це стандартне місце (AOSP) і містить деякі журнали аварій, включаючи сліди (див., наприклад, viaForensics та StackOverflow )
  • /data/kernelpanics це ще одне місце - я не мав жодної "паніки з ядром" на своїх пристроях Android, але я ще не бачив вмісту.
  • /data/panic/panic_daemon.configможе вказувати на інші місця , сконфигурированних - на моєму Droid 2 він згадує/sdcard/panic_data/
  • згаданий Droid 2 також має /data/panicreportsкаталог (тут порожній)
  • /data/tombstonesможе містити декілька tombstone_nnфайлів (з тим, що nnвони є послідовним, збільшується з кожним новим файлом). Оскільки надгробні пам'ятники розміщуються для мертвих, це робиться тут для "процесів, загиблих випадково" (тобто розбившись) - і саме це називається "основними відвалами" в системах Linux / Unix. Однак не всі програми створюють надгробки; це має бути чітко включено розробником (див. Налагодження Android Core Dumps ).

Можливо, ще кілька місць, які врятували мене; але оскільки більшість журналів ведеться tmpfs, ці дані втрачаються при перезавантаженні, і вони не відповідають питанням про оперативні програми.

Команди журналу для використання з додатком терміналу (або adb)

Кілька команд можуть отримати тони інформації. Для більшості з них рекомендується перенаправити їх у файл ( > filename.ext) або передати їх через фільтр ( | grep search-for-this):

Журнал ядра

Наступні роботи без кореня:

$ dmesg
<6>[82839.126586] PM: Syncing filesystems ... done.
<7>[82839.189056] PM: Preparing system for mem sleep
<4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done.
<4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<snip>

Logcat

Тут ви можете, наприклад, вказати, яка сфера вас цікавить - радіо, події ...

# logcat -b events
I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721]
I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721]
I/notification_cancel( 3457): [nitro.phonestats,4,0] 
<snip>

Отримання інформації про пристрій

І тонни: специфікація пристрою, інформація про рахунки, послуги ...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {name=xxxxxxx@googlemail.com, type=com.google}
<snip> 

$ dumpstate
========================================================
== dumpstate: 2012-08-18 23:39:53
========================================================

Build: Gingerbread GWK74 - CyanogenMilestone2
Bootloader: 0x0000
Radio: unknown 
<snip>
------ MEMORY INFO (/proc/meminfo) ------
MemTotal: 487344 kB
MemFree: 10436 kB 
<snip>

Все в одному

Зробіть велику кулю з усім разом, від logcat до dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt

Я впевнений, що ви дійсно хочете перенаправити цю останню команду ... xD

Щось про дозволи

PS: Звичайно, для доступу до цієї інформації може знадобитися root, оскільки більшість джерел знаходяться на внутрішньому сховищі.


Щоб дізнатися більше про команди adb logcat, дивіться тут .
— тестування

Або просто перевірте наш тег реєстрації-wiki @testing - на який є ще більше посилань :)
— Izzy

Посилання на "Налагодження Android Core Dumps" мертве, ми можемо отримати альтернативу?
— Спайдей

1
@Spidey завжди існує Archive.ORG для подібних проблем (посилання йде на робочу копію там).
— Іззі

12

Виявлено, що CatLog відображає журнал Android трохи краще, ніж aLogcat. Крім того adb logcat, саме цим я і користуюся.


Дивіться мій коментар вище щодо додатків LogCat.
— Леандрос

2
Я оновив питання. Зверніть увагу, що інформація про відносну позицію (наприклад, "вище") може легко застаріти, оскільки порядок відповідей може змінюватися з часом.
— Потік

3

Метод без кореня, який працює навіть з новими версіями Android:

Передумови:

  • Linux, Windows або Mac
  • USB-кабель для вашого пристрою
  • Android пристрою

Інструкції:

  1. Встановіть драйвер пристрою для використання adb. Все, що вам потрібно, ви знайдете тут
  2. Завантажте виконуваний файл adb для вашої ОС. Він є частиною Android SDK, але ви можете знайти окремий виконуваний файл окремо.
  3. Підключіть свій Android-пристрій.
  4. Увімкніть параметри розробника .
  5. Увімкнути налагодження через USB.
  6. Відкрийте командний рядок (windows) або термінал (linux / mac). Як це зробити: У Windows: windows + r> введіть "cmd" (без лапок)> натисніть клавішу Enter | У Linux: Ви не знаєте, як відкрити термінал? LOL | На Mac: Введіть Terminalпрожектор і відкрийте його
  7. Компакт-диск до каталогу, в якому знаходиться виконуваний файл adb. У Windows: Перейдіть у каталог, де ви завантажили виконуваний файл adb, клацніть Shift + клацніть правою кнопкою миші та виберіть "Відкрити консоль" (або подібне) | У Linux / Mac: Клацніть правою кнопкою миші в каталозі та виберіть "Відкрити термінал тут" (або просто компакт-диск у каталог)
  8. Введіть свій cmd / terminal: adb devicesщоб переконатися, що ваш пристрій правильно підключений.
  9. Якщо ваш пристрій вибрано правильно, введіть, adb logcatщоб показати потужну та магічну logcat aka stacktrace.
  10. Відтворіть свою помилку (чи будь-яку іншу) на своєму пристрої.
  11. Одразу після цього вставити все cmd / вікно терміналу в сервіс пасти, як http://pastebin.com/, і надіслати його нам.

(Здебільшого скопійовано з Леандроса )


2

Безкоштовний додаток SysInfo ( сторінка проекту ) відображатиме системні журнали, а також посилає повний системний звіт для надсилання електронною поштою, дроп-бокс, NFC тощо. Не кажучи вже про безліч іншої цікавої системної інформації.


(Так, я запізнився майже на рік, але про це потрібно згадати).
— Дж. Роберт

Зараз обидва ланки розірвані.
— jk7

Друге посилання (сторінка проекту) для мене все ще працює, але останні записи в ньому - з 2010 року. Android колись змінюється з тих пір багато функцій Sysinfo.
— JRobert

-1

Він знаходиться в с /sdcard/bugreports.


3
Я ніколи не мав такої папки на своєму телефоні ... це специфічно для виробника чи пристрою?
— Матвій

2
Від Logcat - CyanogenMod Wiki : Ви можете використовувати комбінацію магічних клавіш для створення файлу bugreport у / sdcard / bugreports. Отже, це здається а) трохи специфічним (можливо, для КМ) і б) не відповіддю на запитання, оскільки ОП шукає «автоматично сформовані».
— Izzy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.