¿Cómo puedo ver y examinar el registro de Android?

109

Hay muchas cosas interesantes en el registro del sistema Android, que son útiles de muchas maneras.

  • encontrar las causas profundas de los problemas
  • identificar aplicaciones que se comportan mal

¿Cómo puedo ver y examinar el registro de Android?

Fluir
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Mateo leyó el

Respuestas:

59

Android 4.1 y más reciente

La forma preferida es descargar el SDK y usarlo adb logcat(requiere activar las "opciones de desarrollador" en el dispositivo).

Hay aplicaciones disponibles para ver el registro completo del sistema, sin embargo, solo funcionan en dispositivos rooteados o requieren la emisión de un comando manual adbpara que funcionen. Para ver más información, vea esta pregunta.

Android 4.0 y anterior

Puede descargar el SDK y usar adb logcatu obtener Logcat Extrem de Google Play Store, que muestra el registro directamente en su teléfono.

onik
fuente
2
Alternativamente, puede usar el emulador de terminal con el comando "logcat> /sdcard/log.txt" para la escritura continua del registro en un archivo en la tarjeta SD. Esto puede ayudar a resolver problemas con reinicios aleatorios.
Chahk
Buen punto. Algunos teléfonos tienden a enviar spam al registro lleno de información trivial, por lo que si desea minimizar el tamaño del archivo y los datos, consulte la sección "Salida del registro de filtrado" en developer.android.com/guide/developing/tools/adb.html #logcat
onik
LogCat Apps no funciona de ninguna manera con JellyBean. Google cambió la API de Android, las aplicaciones ya no tienen permiso para leer registros de otras aplicaciones que no sean las suyas.
Leandros
He creado una sencilla utilidad para recopilar registros de una PC: gist.github.com/hrj/5983971
HRJ
Logcat Extreme es la buena aplicación para ver el registro
Arpit Patel
57

Ubicaciones de archivo de registro

Existen varios directorios en los que pueden aparecer registros (incluidos los de bloqueos); no todos están estandarizados (es decir, algunos pueden ser específicos de ROM).

  • /data/anr: Algunos archivos de rastreo parecen llegar aquí (Dalvik escribe seguimientos de pila aquí en ANR, es decir, "La aplicación no responde", también conocida como "Forzar cierre"; consulte, por ejemplo, extractos de registro aquí )
  • /data/dontpanicparece ser una ubicación estándar (AOSP) y contiene algunos registros de bloqueo, incluidos los rastros (ver, por ejemplo, viaForensics y StackOverflow )
  • /data/kernelpanics es otra ubicación: al no haber tenido "kernel panic" en mis dispositivos Android, todavía no vi contenido.
  • el /data/panic/panic_daemon.configpuede apuntar a otras ubicaciones configuradas: en mi Droid 2 menciona/sdcard/panic_data/
  • Droid 2 mencionado también tiene un /data/panicreportsdirectorio (vacío aquí)
  • /data/tombstonespuede contener varios tombstone_nnarchivos (al nnser una serie, aumenta con cada archivo nuevo). A medida que se colocan lápidas para los muertos, se hace aquí por "procesos que murieron por accidente" (es decir, bloqueados), y es lo que se conoce como "volcados de núcleo" en sistemas Linux / Unix. Sin embargo, no todas las aplicaciones crean lápidas; esto debe ser explícitamente habilitado por el desarrollador (consulte Depuración de descargas de Android Core ).

Puede haber algunos lugares más que se me escaparon; pero como la mayoría de los registros se realizan tmpfs, estos datos se pierden con un reinicio y no coinciden con la pregunta de los OP.

Registre comandos para usar con una aplicación de terminal (o adb)

Varios comandos pueden obtener toneladas de información. Para la mayoría de ellos, es recomendar redirigirlos a un archivo ( > filename.ext) o canalizarlos a través de un filtro ( | grep search-for-this):

Kernel log

Lo siguiente funciona sin root:

$ 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

Aquí puede, por ejemplo, especificar en qué área está interesado: radio, eventos ...

# 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>

Obteniendo información del dispositivo

Y toneladas de información específica del dispositivo, información de la cuenta, servicios ...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {[email protected], 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>

Todo en uno

Haga una gran bola con todo junto, desde logcat hasta dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt

Estoy bastante seguro de que realmente quieres redirigir ese último comando ... xD

Algo sobre permisos

PD: Naturalmente, el acceso a esa información puede requerir root, ya que la mayoría de las fuentes se encuentran en el almacenamiento interno.

Izzy
fuente
Para obtener más información sobre los comandos de adb logcat, consulte aquí .
prueba
O simplemente consulte nuestra etiqueta de registro-wiki @testing - que tiene aún más referencias :)
Izzy
El enlace para "Depuración de descargas de Android Core" está muerto, ¿podemos obtener una alternativa?
Spidey
1
@Spidey siempre hay Archive.ORG para este tipo de problema (el enlace va a una copia de trabajo allí).
Izzy
12

A descubrió que CatLog muestra el registro de Android un poco mejor que aLogcat. Además adb logcat, eso es lo que estoy usando.

Fluir
fuente
Vea mi comentario anterior sobre las aplicaciones LogCat.
Leandros
2
He actualizado la pregunta. Tenga en cuenta que la información de posición relativa (por ejemplo, "arriba") puede quedar desactualizada fácilmente, ya que el orden de las respuestas puede cambiar con el tiempo.
Flujo
3

Un método sin root, que funciona incluso con nuevas versiones de Android:

Prerrequisitos:

  • Linux, Windows o Mac
  • Cable USB para su dispositivo
  • Dispositivo Android

Instrucciones:

  1. Instale el controlador de su dispositivo para usar adb. Todo lo que necesitas lo encontrarás aquí
  2. Descarga el ejecutable adb para tu sistema operativo. Es parte del SDK de Android, pero es posible que pueda encontrar el adb ejecutable individualmente.
  3. Conecta tu dispositivo Android.
  4. Habilita las opciones de desarrollador .
  5. Habilitar depuración de USB.
  6. Abra un símbolo del sistema (Windows) o terminal (Linux / Mac). Cómo hacerlo: en Windows: windows + r> ingrese "cmd" (sin comillas)> haga clic en enter | En Linux: ¿No sabes cómo abrir una terminal? Jajaja En Mac: escriba Terminalen Spotlight y ábralo
  7. CD al directorio donde se encuentra el ejecutable adb. En Windows: vaya al directorio donde descargó el ejecutable adb, Shift + clic derecho y seleccione "Abrir consola" (o similar) | En Linux / Mac: haga clic derecho en el directorio y seleccione "Abrir terminal aquí" (o simplemente CD en el directorio)
  8. Escriba su cmd / terminal: adb devicespara verificar que su dispositivo esté conectado correctamente.
  9. Si su dispositivo está correctamente seleccionado, escriba adb logcatpara mostrar el poderoso y mágico logcat aka stacktrace.
  10. Reproduzca su error (o lo que sea) en su dispositivo.
  11. Justo después, pegue toda la ventana cmd / terminal en un servicio de pegado como http://pastebin.com/ y envíenoslo.

(Mayormente copiado de Leandros )

Nicolas Raoul
fuente
2

La aplicación gratuita SysInfo ( Página del proyecto ) mostrará los registros del sistema, además de comprimir un informe completo del sistema para enviar por correo electrónico, dropbox, NFC, etc. Sin mencionar mucha otra información interesante del sistema.

JRobert
fuente
(Sí, llego casi un año tarde, pero este necesita una mención).
JRobert
Ambos enlaces están rotos ahora.
jk7
El segundo enlace (página del proyecto) todavía funciona para mí, pero las últimas entradas son de 2010. Los cambios de Android en algún momento desde entonces han roto mucho la funcionalidad de Sysinfo.
JRobert
-1

Se encuentra ubicado en /sdcard/bugreports.

wasimys
fuente
3
Nunca he tenido una carpeta así en mi teléfono ... ¿esto es específico de un fabricante o dispositivo?
Matthew leyó el
2
De Logcat - CyanogenMod Wiki : Puede usar una combinación de teclas mágicas para crear un archivo de informe de errores en / sdcard / bugreports. Así que esto parece ser a) un poco específico (probablemente para CM), yb) no la respuesta a la pregunta, ya que el OP busca preguntas "generadas automáticamente".
Izzy