Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

Depuración en Android

Aquí describimos cómo depurar una build usando Android Studio, el IDE oficial para el sistema operativo Android de Google.

Android Studio

  • Prepara el bundle configurando la opción android.debuggable en game.project

    android.debuggable

  • Crea el bundle de la app en modo debug en una carpeta de tu elección.

    bundle_android

  • Inicia Android Studio

  • Elige Profile or debug APK

    debug_apk

  • Elige el bundle APK que acabas de crear

    select_apk

  • Selecciona el archivo .so principal y asegúrate de que tenga símbolos de depuración

    select_so

  • Si no los tiene, sube un archivo .so sin strip (unstripped). (el tamaño es de unos 20mb)

  • Los mapeos de rutas ayudan a reasignar las rutas individuales desde donde se creó el ejecutable (en la nube) a una carpeta real en tu disco local.

  • Selecciona el archivo .so, luego agrega un mapeo a tu disco local

    path_mapping1

    path_mapping2

  • Si tienes acceso al código fuente del motor, agrega también un mapeo de ruta para eso.

  • Asegúrate de hacer checkout de la versión que estás depurando actualmente

    defold$ git checkout 1.2.148

  • Presiona Apply changes

  • Ahora deberías ver el código fuente mapeado en tu proyecto

    source

  • Agrega un breakpoint

    breakpoint

  • Presiona Run -> Debug "Appname" e invoca el código donde esperas detenerte

    breakpoint

  • Ahora puedes avanzar por el callstack e inspeccionar las variables

Notas

Carpeta de trabajo de Native Extension

Actualmente, el flujo de trabajo es un poco problemático para el desarrollo. Esto se debe a que el nombre de la carpeta de trabajo es aleatorio en cada build, lo que invalida el mapeo de rutas en cada build.

Sin embargo, funciona bien para una sesión de depuración.

Los mapeos de rutas se almacenan en el archivo .iml del proyecto en el proyecto de Android Studio.

Es posible obtener la carpeta de trabajo desde el ejecutable

$ arm-linux-androideabi-readelf --string-dump=.debug_str build/armv7-android/libdmengine.so | grep /job

La carpeta de trabajo se nombra así: job1298751322870374150, cada vez con un número aleatorio.