|
||
|
![]() |
![]() |
ROMs y desarrollo Samsung Galaxy S I9000 ROMs y desarrollo Samsung Galaxy S I9000 |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Herramientas de depuración del sistema, TOP, LOGCAT, DMESG, DDMS, OSMONITOR
Estas son algunas herramientas que nos pueden ayudar a conocer más como funciona nuestro sistema y cómo se comporta.
Pueden parecer poco transparentes e incluso confusas si no tienes grandes conocimientos, pero si les dedicas un tiempo a familiarizarte verás que pueden ser muy útiles y evitarte el divagar o especular por ejemplo sobre por qué la batería se consume rápidamente sin venir a cuento identificando quién es el responsable, al igual que saber por qué ciertas aplicaciones dan cierres forzados. TOP Código:
adb shell top Código:
adb shell / #top top es un monitor de sistema incluido en los sistemas basados en unix y nos muestra una tabla con información detallada de los procesos. Lo primero que debemos hacer es adaptar esa salida de datos al tamaño de nuestra ventana, ya que solo vemos una parte. top.png ¿qué nos interesa? En la cabecera: User %, System % nos dice el % de cpu que utilizan las aplicaciones distinguiendo entre procesos del usuario y de sistema, siendo la suma de los dos el % de uso total de cpu. Columna PID ->identificador numérico único para cada proceso Columna CPU% -> muestra la carga de cpu usada por ese proceso Columnas S y PSY ->nos dice en que estado se encuentra: run, sleep, idle, background, foreground Columna UID -> identifica quién ha lanzado el proceso. En general verás que la mayoría son del propio sistema (root), aunque también verás system, radio, app_xx,. etc. Columna Name ->nombre del proceso El resto de columnas solo son útiles para depuraciones avanzadas, uso de memoria virtual, hilos,.... top es ideal para monitorizar como se comportan los diferentes procesos/aplicaciones lanzados en el sistema especialmente cuando está en reposo. No hay más que dejar el móvil en reposo unos minutos y observar como empiezan a lanzarse aleatoriamente varios procesos. Algunos son razonables y necesarios para mantener "vivo" el sistema, pero es fácil ver por ejemplo como algunos widgets aparentemente inofensivos se activan con demasiada frecuencia haciendo uso de cpu, lo que afecta al consumo de la batería. Código:
#killall -9 proceso LOGCAT Código:
adb logcat Código:
adb shell /#logcat logcat es un visor con mensajes de depuración donde el sistema informa de infinidad de sucesos, muy útil para identificar qué errores se producen en el sistema o de qué forma funcionan. Logcat requiere familiarizarse con su formato y sintaxis. Mucha información no te portará nada si no tienes conocimientos avanzados en código android pero es fácil identificar ciertos fallos como si un proceso no encuentra un archivo, fallos con permisos, servidores remotos que no responden, etc. Ejemplos: Aquí se ejecuta root explorer la primera vez después de un arranque del sistema y obtienen permisos rootFíjate que al comienzo de cada notificación hay una etiqueta que te informa del tipo de información que ofrece :
Si queremos centrarnos en el comportamiento de una parte del sistema determinada, proceso o aplicación, podemos filtrar la salida de datos: Mostrar solo notificaciones de error Código:
adb logcat >logcat.txt Más info: http://developer.android.com/guide/d...tools/adb.html DMESG Código:
adb shell dmesg Código:
adb shell #dmesg dmesg nos muestra los mensajes de diagnóstico emitidos por el kernel. Aquí verás si existen errores o conflictos con drivers, módulos, etc... Código:
adb shell dmesg >dmesg.txt DALVIK_DEBUG_MONITOR En el SDK de android viene incluido una herramienta de depuración muy útil con el que puedes obtener mucha de esta información aparte de extras como hacer capturas de pantalla. Tienes el ejecutable en /tools/ddms dentro del SDK. Más info: http://developer.android.com/guide/d...ools/ddms.html OSMONITOR Bueno, esta es una aplicación disponible en el market que me encanta y que es útil cuando no disponemos de ordenador y queremos comprobar que todo funciona como debería. Incluye task manager, top, logcat general o filtrando por aplicación, dmesg, información de las interfaces de red con contador de tráfico de datos, conexiones TCP activas y en que estado se encuentran, frecuencia de CPU y governor en tiempo real configurable en kernels sin perflock (que permitan OC, pero es muy básica), info completa de la batería, espacio libre en el sistema, .... ![]() Recomiendo esta configuración extra:
Vista de log:
En la pestaña procesos:
Posiblemente existan aplicaciones equivalentes pero por ahora creo que esta es la más completa.
__________________
________ ★[CWMODIN] Flashea y personaliza ODIN stock roms desde el recovery http://ow.ly/kbEwt★[Universal Flasher Tool] Flashea temas metamorph y archivos desde el recovery con autobackup http://goo.gl/Gxucm Última edición por intronauta Día 11/01/11 a las 17:00:10. |
Los siguientes 23 usuarios han agradecido a intronauta su comentario: | ||
|
#2
|
||||
|
||||
Qué crack estas echo!
![]() Habrá que indagar un poco en el tema y aprender algo jeje ![]() Muchas gracias! |
#5
|
||||
|
||||
interesante tio, muchas gracias..
__________________
![]() |
#6
|
||||
|
||||
Simplemente te aplaudo, la verdad que a todos y desde aqui aprobecho para agradeceros cuanto estoy aprendiendo con vuestra sabiduria. De verdad, Gracias.
![]() ![]() ![]() ![]() |
#7
|
||||
|
||||
a ver si sabeis como puedo resolver mi problemilla,
quiero ver los logs porque se me reinicia el telefono, pero cuando voy a verlos despues de que se haya reiniciado, solo puedo ver los logs posteriores al arranque del telefono, los justo anteriores al reinicio no consigo verlos, no se si es que se borran al reiniciar o que, ¿alguien sabe como solucionarlo? |
#8
|
||||
|
||||
a ver si sabeis como puedo resolver mi problemilla,
quiero ver los logs porque se me reinicia el telefono, pero cuando voy a verlos despues de que se haya reiniciado, solo puedo ver los logs posteriores al arranque del telefono, los justo anteriores al reinicio no consigo verlos, no se si es que se borran al reiniciar o que, ¿alguien sabe como solucionarlo? ![]() Es una limitación incomprensible. Dependiendo del kernel y de cómo tenga implementado el modo depuración puede generarse un "last_kmsg" referente al último log del kernel, pero no disponemos de él (por hora solo los kernel cyanogenmod lo utilizan :/) ¿se te reinicia haciendo algo en especial? es reproducible? sospechas de algo? Si puedes reproducirlo podrías hacer un logcat con volcado a un archivo en tiempo real. Conectas por usb: Código:
adb logcat >logcat.log Podrías probar desde android con un terminal tipo better terminal: Código:
cd sdcard logcat>logcat.log |
![]() |
![]() |
||||||
|