0Pricing
Android Academy · Lección

Depuración y profiling

Domine las herramientas de depuración y profiling de Android Studio: puntos de interrupción, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector y Layout Inspector.

Depuración y profiling es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

Descripción general de la depuración

La depuración es el proceso de encontrar y corregir errores. Android Studio ofrece herramientas potentes:

  • Debugger — pausar la ejecución, inspeccionar variables y recorrer el código paso a paso
  • Logcat — salida de registros del dispositivo en tiempo real
  • Layout Inspector — inspeccionar la jerarquía de la interfaz en ejecución
  • Android Profiler — análisis de CPU, memoria y red
  • Database Inspector — ver y consultar bases de datos Room en ejecución

Logcat — Su primera herramienta de depuración

Use Log para imprimir mensajes en Logcat. Use un TAG para filtrar sus registros:

import android.util.Log

class UserRepository {
    companion object {
        private const val TAG = "UserRepo"
    }

    fun fetchUsers() {
        Log.d(TAG, "fetchUsers() called")        // Debug
        Log.i(TAG, "Fetching ${users.size} users") // Info
        Log.w(TAG, "Cache is empty")               // Warning
        Log.e(TAG, "Network error: $exception")    // Error
    }
}

Timber — Un registro mejor

Timber es un envoltorio ligero de Log que elimina las llamadas de registro de las compilaciones de lanzamiento y añade automáticamente el nombre de la clase como TAG:

// app/build.gradle:
// implementation 'com.jakewharton.timber:timber:5.0.1'

// In Application.onCreate():
if (BuildConfig.DEBUG) {
    Timber.plant(Timber.DebugTree())
}

// Usage anywhere in the app (no TAG needed):
Timber.d("User loaded: %s", user.name)
Timber.e(exception, "Failed to fetch data")
Timber.w("Cache miss for key: %s", key)

Puntos de interrupción y el Debugger

Pasos para depurar con puntos de interrupción en Android Studio:

  1. Haga clic en el margen izquierdo, junto a una línea de código; aparecerá un punto rojo
  2. Ejecute la aplicación con Debug (el icono del insecto) en lugar de Run
  3. Cuando la ejecución llegue al punto de interrupción, se pausará
  4. Inspeccione las variables en el panel Variables
  5. Use Step Over (F8) para avanzar línea por línea y Step Into (F7) para entrar en una función

Evaluar expresión

Mientras la ejecución está pausada en un punto de interrupción, use Evaluate Expression (Alt+F8) para ejecutar código Kotlin en el ámbito actual. Compruebe sus suposiciones sin reiniciar:

  • Compruebe list.size y user.email.isNotBlank()
  • Llame a cualquier método y consulte el valor devuelto
  • Inspeccione objetos complejos directamente

Memory Profiler

Encuentre fugas de memoria con Memory Profiler (View → Tool Windows → Profiler):

  • Observe el tamaño del heap con el tiempo; un crecimiento constante suele indicar una fuga
  • Fuerce la ejecución del GC y observe si la memoria disminuye
  • Capture un volcado del heap para ver qué objetos siguen activos
  • Busque instancias de Activity o Fragment que ya deberían haber sido procesadas por el GC

LeakCanary — Detección automática de fugas

LeakCanary detecta e informa automáticamente de las fugas de memoria mediante notificaciones en las compilaciones de depuración:

// app/build.gradle:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'

// That's it — no code changes needed!
// LeakCanary auto-installs via ContentProvider.
// When a leak is detected, it shows a notification with the leak trace.

// Common causes to watch for:
// - Static references to Context/Activity
// - Not releasing ViewBinding in onDestroyView()
// - Listeners registered to singletons but not unregistered

CPU Profiler

Encuentre cuellos de botella de rendimiento con CPU Profiler:

  • Grabe un trace mientras realiza una acción
  • Consulte un gráfico de llamas para ver qué métodos tardan más
  • Busque tareas prolongadas en el main thread; provocan una interfaz entrecortada
  • Mueva los cálculos pesados a Dispatchers.IO o Dispatchers.Default

Network Inspector

Network Inspector muestra en tiempo real todas las llamadas HTTP que realiza su aplicación:

  • Consulte la URL, el método, las cabeceras y el cuerpo de la solicitud
  • Consulte el código de respuesta, el cuerpo y los tiempos
  • Identifique solicitudes lentas o fallidas
  • Funciona con OkHttp (utilizado por Retrofit) directamente, sin configuración adicional

Acceda mediante View → Tool Windows → App Inspection → Network Inspector.

Database Inspector

Inspeccione y consulte en directo su base de datos Room en un dispositivo en ejecución:

  • Vea las tablas y su contenido
  • Ejecute consultas SQL personalizadas
  • Observe cómo cambian los datos mientras usa la aplicación

Acceda mediante App Inspection → Database Inspector. Funciona con Room en API 26 y versiones posteriores.

Layout Inspector

Layout Inspector muestra una vista 3D en directo de la jerarquía de su interfaz:

  • Seleccione cualquier vista para ver sus atributos (márgenes, relleno, texto y color)
  • Detecte vistas superpuestas o con una visibilidad incorrecta
  • Depure problemas de diseño sin tener que adivinar

Acceda mediante View → Tool Windows → Layout Inspector. Conéctese a una aplicación en ejecución en un dispositivo o emulador.

StrictMode

StrictMode detecta operaciones accidentalmente lentas en el subproceso principal (lecturas de disco y llamadas de red) y registra el problema o bloquea la aplicación en las compilaciones de depuración:

// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
    StrictMode.setThreadPolicy(
        StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()
            .detectDiskWrites()
            .detectNetwork()
            .penaltyLog()      // log violations instead of crashing
            .build()
    )
}

Comprobación rápida

¿Qué herramienta detecta automáticamente las fugas de memoria en las compilaciones de depuración de Android sin necesidad de código adicional?

Repaso: depuración y creación de perfiles

Encuentre y corrija problemas de forma eficaz:

  • Logcat + Timber — registro ligero que se elimina automáticamente en las compilaciones de lanzamiento
  • Breakpoints + Debugger — pausar e inspeccionar la ejecución en directo
  • Memory Profiler — detectar el crecimiento del heap y las fugas
  • LeakCanary — detección automática de fugas con un stack trace
  • CPU Profiler — encontrar métodos lentos en el subproceso principal
  • Network Inspector — supervisar llamadas HTTP
  • Database Inspector — consultar Room en directo
  • StrictMode — detectar operaciones de E/S accidentales en el subproceso principal

¡Enhorabuena! Ha completado el curso completo de desarrollo de Android.

Preguntas frecuentes

¿La lección «Depuración y profiling» es gratis?

Sí — el texto completo de «Depuración y profiling» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Depuración y profiling»?

Domine las herramientas de depuración y profiling de Android Studio: puntos de interrupción, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector y Layout Inspector. Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Depuración y profiling»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Pruebas unitarias con JUnit
  2. Mocking con Mockito
  3. Pruebas de interfaz con Espresso
  4. Depuración y profiling
← Volver a Android Academy