Як я можу переглянути та вивчити журнал 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.