Depuración de aplicaciones Android en GNU/Linux

En anteriores artículos hemos visto la forma de preparar el sistema para compilar y ejecutar los programas de Android. Aunque muchas veces es posible hacer las pruebas en el emulador no siempre es la forma más eficiente de depurar un programa. Por esta razón ayuda probar el programa en un dispositivo real que puede ser un teléfono o un tablet. Partiendo del típico programa “Hola mundo” veremos la forma de probarlo en ambos dispositivos bajo el sistema operativo GNU/Linux. Los pasos se aplican a Fedora 16 pero deberían funcionar en otras distribuciones sin problemas.

En el caso de no tener el sistema preparado puedes consultar el artículo Instalación del Android SDK en Fedora 16 x64. Si tu sistema es de 64 bits es necesario instalar algunos paquetes extras debido a que el SDK de Android está preparado para 32 bits.

Creamos un proyecto nuevo en Eclipse con Archivo, Nuevo Proyecto, Android Project

  • Rellenamos los datos del proyecto y completamos el asistente (no importa los datos de la aplicación).
  • Para ejecutar el programa pulsamos Ejecutar (Ctrl + F11).

Los dispositivos bajo prueba son:

  • HTC Desire con Android 2.3.7 (API 10).
  • bq Kepler con Android 2.3.1 (API 9).

Para esta prueba el proyecto usará el API 9 del SDK. Dependiendo del dispositivo tendremos dos formas de configurarlos para que los detecte Eclipse.

  • HTC Desire: comprobamos que está activado el modo de depuración
    • Ajustes > Aplicaciones > Desarrollo > Depuración USB.
    • Hay que activarlo antes de conectar el teléfono al PC.
  • Bq Kepler: comprobamos que está activado el modo de depuración
    • Desconectamos el tablet del PC.
    • Ajustes > Aplicaciones > Desarrollo > Depuración USB.

Si todo es correcto, cuando ejecutemos el programa en Eclipse veremos una ventana similar a la siguiente:

Selección del dispositivo

Es posible que en algún momento queramos hacer una captura de la pantalla de los dispositivos. Si el dispositivo no tiene acceso root, se pueden hacer las capturas usan el SDK de Android. Abrimos una consola, pasamos a la carpeta de Androidtools. Ejecutamos la aplicación ddms, seleccionamos el dispositivo y hacemos la captura con Ctrl + S.

Captura de pantalla

Capturando el teléfono y el tablet tenemos:

Captura Desire

Captura Kepler

Ejecutamos el programa en Eclipse con Ctrl + F11 y vemos el resultado en ambos dispositivos.

Programa DesireEl mismo programa en el tablet

Programa Kepler

Liberado Android SDK r17

El equipo de desarrollo de Android ha liberado recientemente una nueva revisión del SDK en concreto la revisión 17. Esta liberación incluye varias novedades relacionadas con Lint y con el emulador. Lint es una herramienta de programación que hace análisis del código que hemos programado. A efectos prácticos permite detectar errores comunes en el código o código poco optimizado de diferentes tipos como aspectos de seguridad, rendimiento o usabilidad. Esta herramienta complementa al compilador de Java y se puede ejecutar dentro de Eclipse o mediante la consola.

Las novedades añadidas en la revisión 17 del SDK son:

  • Añadida una comprobación para Lint que permite detectar si estamos usando un método que no se encuentra en la versión del SDK que estamos usando. Por ejemplo si ponemos como requisito mínimo de la aplicación la versión 4 de la API (Android 1.6) y usamos un método que está en versiones posteriores recibiremos un aviso al ejecutar Lint. Para más información consultar el siguiente enlace.
  • Añadidas 40 reglas de comprobación que afectan al rendimiento de la aplicación, al uso de layouts y la gestión  de archivos y del manifiesto. El listado completo está en el siguiente enlace.
  • Añadida la posibilidad de desactivar los avisos de Lint en el código escrito en Java. Para más información consultar el siguiente enlace.
  • Mejorada la generación de reportes en HTML y XML y la integración con Eclipse. Para más información consultar el siguiente enlace.

Los cambios en la generación de los proyectos son:

  • Si usamos librerías de terceros es posible que aparezcan duplicados si varias librerías usan un elemento común. En la revisión 17 el sistema se encargará de prevenir el uso de elementos duplicados. Para más información consultar el siguiente enlace.
  • Añadido soporte para la creación de vistas personalizadas con atributos personalizados.
  • Añadida la posibilidad de ejecutar partes del código en modo depuración mientras que el resto del código se ejecuta de forma normal.

Por último, las mejoras en el emulador incluyen:

  • Soporte de la arquitectura x86 en Windows y Mac OS X. Esto hace que el emulador se ejecute prácticamente a la velocidad nativa del sistema (en lugar de la velocidad “normal” del emulador). Esta función es experimental y puede dar errores. Sus requisitos son que la CPU del PC tenga funciones de virtualización y ejecutar una imagen de Android para x86. De momento esta función no funciona en GNU/Linux.
  • Soporte experimental de Multi-Touch.

Referencias:  Updated SDK Tools and ADT revision 17

Nuevo panel de estadísticas para programadores en el Android Market

Cuando un usuario pasa de usar aplicaciones a programarlas puede distribuir los programas en varios servidores llamados Market. La tienda oficial de Android es el Android Market y se encuentra instalada de serie en los terminales que llevan Android. Para que un terminal pueda llevar el Android Market es necesario que tenga un rendimiento mínimo, por esta razón algunos tablets no lo llevan incluido de serie. Hay otros Markets para Android como Appbrain o Amazon y requieren normalmente de la instalación de una aplicación que lleva la tienda.

 Si nos centramos en el Android Market tenemos varios elementos que facilitan la distribución y venta de nuestro programa:

  • Los bugs que aparezcan en la aplicación se pueden reportar usando el propio Market.

  • Las actualizaciones de nuestro programa se distribuyen de forma automática en los dispositivos que hayan instalado una versión anterior.

  • Podemos ver estadísticas y ver el efecto de una nueva versión sobre el número de usuarios e instalaciones.

Inicialmente las estadísticas permitían ver información relacionada con la distribución por países, la versión de la plataforma de Android que usa el usuario final o el tipo de dispositivo. Recientemente se ha liberado una actualización que añade a los parámetros anteriores nuevas estadísticas:

  • Ver instalaciones por usuarios / dispositivos únicos.

  • Ver el número de instalaciones / desinstalaciones diarias.

  • Ver el número de actualizaciones.

Junto con las nuevas estadísticas se ha modificado la apariencia del bloque de estadísticas de forma que sea más cómoda de usar. En la siguiente imagen podéis ver la estructura que tiene la versión liberada.

Nueva versión del módulo de estadísticas del Android Market

Referencias: http://android-developers.blogspot.com/2012/02/new-app-stats-for-publishers-on-android.html

Taller de programación en Android

En la pasada Campus Party se realizó un taller de programación con Android. Este taller lo realiza Jorge Juan Barroso (Senior Developer Tuenti) y explica desde el inicio la forma de empezar con Android. El taller está formado por dos vídeos, con una duración de 3 horas.