В системном журнале Android есть много интересного, полезного во многих отношениях.
Как просмотреть и изучить журнал Android?
Предпочтительным способом является загрузка SDK и использование adb logcat
(требуется активировать «параметры разработчика» на устройстве).
Существуют приложения для просмотра полного системного журнала, однако они работают только на устройствах с root-доступом или требуют ввода команды вручную adb
, чтобы заставить их работать. Для получения дополнительной информации см. этот вопрос.
Вы можете загрузить SDK и использовать adb logcat
или получить Logcat Extrem из магазина Google Play, который показывает журнал прямо на вашем телефоне.
Есть несколько каталогов, в которых могут появляться журналы (в том числе журналы сбоев) — не все из них стандартизированы (т. е. некоторые могут быть специфичными для ПЗУ).
/data/anr
: кажется, что некоторые файлы трассировки попадают сюда (Dalvik записывает трассировку стека здесь в ANR, т.е. «Приложение не отвечает», также известное как «Принудительное закрытие»; см., например, выдержки из журнала здесь )/data/dontpanic
кажется стандартным расположением (AOSP) и содержит некоторые журналы сбоев, включая трассировки (см., например, viaForensics и StackOverflow )/data/kernelpanics
— это еще одно место — у меня не было «паники ядра» на моих устройствах Android, и я еще не видел там контента./data/panic/panic_daemon.config
другие настроенные местоположения - на моем Droid 2 упоминается/sdcard/panic_data/
/data/panicreports
каталог (здесь пустой)/data/tombstones
может содержать несколько tombstone_nn
файлов ( nn
последовательный, увеличивающийся с каждым новым файлом). Поскольку надгробные плиты ставятся для мертвых, здесь это делается для «процессов, умерших случайно» (т.е. аварийных) — и это то, что называется «дампами ядра» в системах Linux/Unix. Однако не все приложения создают надгробия; это должно быть явно разрешено разработчиком (см. Отладка дампов ядра Android ).Могут быть и другие места, которые ускользнули от меня; но поскольку большая часть журналов выполняется на tmpfs
, эти данные теряются при перезагрузке и не соответствуют вопросу ОП.
Несколько команд могут дать вам массу информации. Для большинства из них рекомендуется перенаправить их в файл ( > 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 -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 shell
подключение к устройству через терминал. (Конечно, убедитесь, что ваше устройство подключено к компьютеру и включена отладка по USB.)Метод без рута, который работает даже с новыми версиями Android:
Предпосылки:
Инструкции:
Terminal
Spotlight и откройте его .adb devices
чтобы убедиться, что ваше устройство правильно подключено.adb logcat
чтобы отобразить могучий и волшебный logcat, также известный как трассировка стека.(В основном скопировано с Леандроса )
Он расположен в /sdcard/bugreports
.
Мэтью Рид