Red de conocimiento informático - Material del sitio web - Cómo utilizar DDMS de Android

Cómo utilizar DDMS de Android

Ejecutar DDMS

DDDMS está integrado en Eclipse y viene con un SDK en el directorio de herramientas. Si tiene un dispositivo conectado y un emulador ejecutándose al mismo tiempo, DDMS se ejecuta en el emulador de forma predeterminada.

Abrir desde Eclipse: haga clic en *Ventana>Abrir perspectiva>Otro...>DDMS*.

Abrir desde la línea de comando: escriba ddms (o ./ddms en Mac/Linux) en el directorio de herramientas

Cómo interactúa DDMS con el depurador

En En la plataforma Android, cada aplicación se ejecuta en su propio proceso y cada aplicación también se ejecuta en su propia máquina virtual (VM). Cada máquina virtual publica un número de puerto único para que se conecte el depurador.

Cuando se inicia DDMS, se conecta a adb. Una vez que el dispositivo está conectado, se crea un servicio de monitoreo de VM entre adb y DDMS y notifica a DDMS

si se ha iniciado o finalizado una VM en el dispositivo. Una vez que la máquina virtual comienza a ejecutarse, DDMS obtiene el ID del proceso de la máquina virtual (pid) y establece una conexión con el depurador de VM a través de adb y el demonio adb (adbd) en el dispositivo. En este punto, DDMS puede comunicarse con la VM utilizando el protocolo de conexión acordado.

DDMS asigna un puerto de depuración a cada máquina virtual del dispositivo. Normalmente, el primer número de puerto depurable asignado por DDMS es 8600, el siguiente es 8601, y así sucesivamente. Cuando un depurador está conectado a uno de los puertos asignados, toda la comunicación en la VM está asociada con el depurador. Un depurador solo puede conectarse a un único puerto,

pero DDMS puede manejar varios depuradores conectados al mismo tiempo.

De forma predeterminada, DDMS también escucha en el "puerto base" de DDMS (el valor predeterminado es

8700). El puerto base es un puerto de reenvío de puertos que acepta tráfico de todos los puertos de depuración de la máquina virtual a través del puerto 8700 y puede enviar información al depurador. Esto le permite conectar el depurador al puerto

8700 y depurar máquinas virtuales en todos los dispositivos. En la vista del dispositivo DDMS, el proceso seleccionado actualmente puede finalizar el tráfico reenviado.

La siguiente captura de pantalla muestra

una vista de pantalla DDMS estándar en Eclipse. Si inicia DDMS desde la línea de comandos, las capturas de pantalla serán ligeramente diferentes, pero la gran mayoría de las funciones son las mismas. Tenga en cuenta que este proceso en particular

com.android.email se ejecuta en el emulador en el puerto de depuración 8700, mientras que el puerto asignado es 8606. Esto indica que DDMS actualmente está reenviando el puerto 8606

al puerto de depuración estático 8700.

/images/debug-ddms .png Figura 1. Captura de pantalla de DDMS

Si no está utilizando Eclipse y ADT, lea "Configuración de su IDE para conectarlo al puerto de depuración" para aprender más Más información sobre cómo conectarse al depurador.

Consejo: Puedes establecer una variedad de configuraciones para tu uso personal en Preferencias de Archivo. Estas configuraciones se guardan en $HOME/.android/ddms

Comprenda los problemas de depuración de Dalvik*

Las aplicaciones depuradas en la VM de Dalvik son las mismas que se ejecutan en cualquier otra VM.

Sin embargo, al salir del código sincronizado, el puntero de "posición actual" puede saltar a la última posición en el método.

Uso de DDMS

La siguiente sección explica cómo usar DDMS y sus opciones. y paneles en la interfaz gráfica de usuario de DDMS. La versión de Eclipse y la versión de línea de comandos tienen interfaces ligeramente diferentes, pero la funcionalidad es idéntica. Para obtener información sobre cómo ejecutar DDMS, consulte la documentación en la sección anterior, "Ejecución de DDMS".

Ver el uso de la memoria dinámica de un proceso

DDMS le permite ver el uso de la memoria dinámica de un proceso. El seguimiento del uso del montón de un programa durante un tiempo de ejecución específico es información muy útil.

Pasos para ver el uso del montón:

1. En "Opciones del dispositivo", seleccione el proceso para el cual desea ver la información de uso del montón. 2. Haga clic en el botón "Actualizar montón" para obtener la información del montón del proceso. 3. En Opciones de montón, haga clic en Motivo

GC activa la recolección de basura, lo que hará que la recopilación de datos del montón esté disponible. Cuando se complete la operación, verá un conjunto de tipos de objetos y la memoria asignada para cada tipo. Haga clic en "Motivo" nuevamente

GC actualiza los datos. 4. Haga clic en un tipo de objeto en la lista para ver un gráfico de barras que muestra la cantidad de objetos asignados a un tamaño de bytes de memoria específico.

Seguimiento de la asignación de memoria para objetos

DDMS proporciona una característica muy útil para rastrear los objetos que asignan memoria y ver qué clases y subprocesos están asignando los objetos. De esta manera, puede rastrear en tiempo real qué objetos están asignando recursos cuando realiza operaciones específicas en su aplicación. Analizar el uso de la memoria que afecta el rendimiento de las aplicaciones es información extremadamente valiosa.

Seguimiento de la asignación de memoria de los objetos:

1. En las opciones del dispositivo, seleccione el proceso que necesita realizar un seguimiento de la asignación de memoria. 2. En la opción Asignar memoria, haga clic en el botón Iniciar seguimiento para iniciar el seguimiento de la asignación. En este punto, se realizará un seguimiento de cualquier acción en la aplicación. 3. Haga clic en Obtener asignaciones para ver una lista de objetos asignados desde que hizo clic en el botón Iniciar

seguimiento. 4. Para detener el seguimiento o borrar datos y empezar de nuevo, haga clic en el botón Detener

seguimiento. 5. Haga clic en una fila específica de la lista para ver más detalles, como el método del objeto asignado y el número de línea de código.

Usar el emulador o el sistema de archivos del dispositivo

DDMS proporciona opciones de sistema de archivos que permiten ver, copiar y eliminar archivos en el dispositivo. Esta función es útil para inspeccionar archivos creados por aplicaciones o para importar o exportar archivos desde el dispositivo.

Usando el emulador o el sistema de archivos del dispositivo:

1.2. Para copiar un archivo desde el dispositivo, busque el archivo en el explorador de archivos y haga clic en el botón Extraer archivo. 3. Para copiar el archivo al dispositivo, haga clic en el botón Enviar archivo en las opciones de exploración de archivos

Ver información del hilo

La opción del hilo en DDMS muestra los hilos que se ejecutan en el proceso seleccionado Información del hilo.

1. En las opciones del dispositivo, seleccione el proceso donde se encuentra el hilo que desea ver. 2. Haga clic en el botón Actualizar hilos. 3.3. La opción Hilo mostrará información del hilo para el proceso seleccionado

Iniciar análisis del método

El análisis del método es un medio para rastrear ciertos datos sobre el método. como el número de llamadas, el tiempo de ejecución y el tiempo dedicado a ejecutar el método. Para un control más preciso sobre dónde se recopilan los datos de generación de perfiles, utilice los métodos

startMethodTracing() y stopMethodTracing(). Para obtener más información sobre cómo generar registros de seguimiento, consulte Creación de perfiles

y depuración de la interfaz de usuario.

Antes de comenzar a utilizar el análisis de métodos en DDMS, tenga en cuenta las siguientes limitaciones:

Los dispositivos con versiones de Android 1.5 no son compatibles

Android 2.1 y versiones anteriores. el dispositivo debe tener una tarjeta SD insertada y la aplicación tiene permiso para escribir en la tarjeta SD

Los dispositivos Android 2.2 y superiores no requieren que se inserte una tarjeta SD. Los archivos de registro de seguimiento se enviarán directamente al dispositivo de desarrollo.

Iniciar perfilado de método:

1. En las opciones del dispositivo, seleccione el proceso para realizar perfilado de método. 2. Haga clic en el botón Iniciar perfil de método. 3. Interactuar con la aplicación e iniciar el método a analizar. 4. Haga clic en el botón

Detener análisis del método. DDMS detiene la aplicación de creación de perfiles y abre la vista de seguimiento, que contiene información recopilada de la creación de perfiles de métodos entre hacer clic en Iniciar creación de perfiles de métodos y Detener creación de perfiles de métodos.

Uso de herramientas de comunicación de red

En Android 4.0, DDMS (Dalvik Debug Monitoring Service) incluye opciones detalladas de uso de la red que le permiten rastrear las solicitudes de red de su aplicación. Con esta herramienta, puede monitorear cuándo y cómo su aplicación transfiere datos y realizar las optimizaciones apropiadas en el código subyacente en consecuencia. Además, puede diferenciar entre diferentes tipos de comunicación agregando una etiqueta a un socket de red antes de su uso.

En DDMS, la información de la pila representada por estas etiquetas se muestra gráficamente, como se muestra en la Figura 2:

/images/developing/ddms-network.png

Figura 2. Gráficos de uso de la red

Al monitorear la frecuencia de las transferencias de datos y la cantidad de datos transferidos por conexión, puede determinar dónde se puede optimizar su aplicación para ser más eficiente energéticamente. Por lo general, debe buscar picos a corto plazo que puedan retrasar o causar retrasos en la transmisión, y eliminarlos con anticipación.

Para identificar mejor la causa de los picos de transmisión, la API TrafficStats permite etiquetar las transmisiones de datos dentro de un hilo usando el método setThreadStatsTag() y luego etiquetarlas (o cancelarlas) manualmente usando tagSocket() y untagSocket. () los métodos marcan) diferentes sockets. Por ejemplo:

TrafficStats.setThreadStatsTag(0xF00D); TrafficStats.tagSocket(outputSocket); //

Utilice socketTrafficStats.untagSocket(outputSocket) para transmitir datos.

Alternativamente, las API Apache HttpClient y URLConnection de la plataforma reconocen automáticamente la interfaz de socket interna en la etiqueta activa (la determinada por getThreadStatsTag()). Estas API identificarán/desidentificarán correctamente los sockets cuando se reciclen a través del grupo de actividades.

TrafficStats.setThreadStatsTag(0xF00D); intente { // Realizar solicitud de red

usando HttpClient.execute() } finalmente {

TrafficStats.clearThreadStatsTag();}

Android 4.0 admite identificadores de socket, pero solo los dispositivos que ejecutan Android 4.0.3 o superior admiten la visualización del estado en tiempo real de los identificadores de socket.

Uso de registros

LogCat está integrado en DDMS para generar mensajes impresos usando la clase de registro, así como otros mensajes del sistema, como mensajes de seguimiento de pila, cuando se lanzan excepciones. Para obtener más información sobre cómo registrar información en LogCat, consulte Lectura y escritura de información de registro.

Después de configurar el registro, LogCat se puede utilizar para filtrar mensajes específicos usando los siguientes botones:

Detalles

Depurar

Información

Advertencias

Errores

Comandos

Alternativamente, puedes personalizar el conjunto de filtros para obtener información más detallada. Por ejemplo, puede utilizar etiquetas de registro o ID de proceso para generar información de registro. Utilice los botones Agregar, Eliminar y Cambiar del filtro para administrar filtros personalizados.

Simular el funcionamiento y la ubicación del teléfono

Los controles del simulador simulan el estado de la red de voz y datos de un teléfono. Esto es útil si desea probar la solidez de su aplicación en diferentes entornos de red.

Cambiar el estado de la red, la velocidad de la red y la latencia de la red

La sección Estado del teléfono de la pestaña de control del emulador le permite cambiar el estado de la red, la velocidad de la red y la latencia de la red. Las siguientes opciones están disponibles y entran en vigor inmediatamente después de la configuración:

Voz: denegar búsquedas de roaming residencial no registradas

Datos: denegar búsquedas de roaming residencial no registradas

Velocidad: completa Velocidad GSM HSCSD GPRS EDGE UMTS HSDPA

Latencia - GPRS EDGE UMTS

Simula una llamada entrante o mensaje de texto

La sección Teléfono de la pestaña de control del emulador le permite simular una llamada telefónica y mensajes de texto. Esto es útil para probar la solidez de su aplicación al responder a llamadas entrantes y mensajes de texto. Las siguientes acciones están disponibles:

Voz: ingrese un número en el cuadro de identificación de llamadas y haga clic en "Llamar" para realizar una llamada al emulador o al dispositivo telefónico. Haga clic en el botón colgar para colgar la llamada.

SMS: ingrese el número en el cuadro del número de la persona que llama, ingrese el contenido del mensaje de texto en el mensaje y haga clic en el botón Enviar para enviar el mensaje de texto.

Establecer la ubicación del teléfono

Si su aplicación requiere el uso de la ubicación del teléfono, puede usar DDMS para configurar una ubicación simulada para el dispositivo telefónico o AVD (dispositivo virtual Android). Esto es útil si desea probar diferentes aspectos de la funcionalidad relacionada con la ubicación de su aplicación sin cambiar realmente la ubicación física. Los siguientes son los tipos de datos de ubicación disponibles:

Manual: establece la ubicación especificando manualmente valores de longitud y latitud decimales o hexadecimales

GPX: archivo interactivo GPS

KML: archivo de lenguaje de marcado Keyhole

Para obtener más detalles sobre la simulación de datos de ubicación, consulte Políticas de ubicación