Construir aplicaciones Android desde la línea de comandos

Emacs es algo adictivo sin duda… a tal punto que a veces prefiero programar todo desde la línea de comandos en vez de usar un IDE como Eclipse o Netbans. En esta entrada, que sin duda es de esas que me sirve solo a mi y a unos pocos más, se detalla el proceso de compilación e instalación de aplicaciones para Android sin usar más que el SDK y una línea de comandos. Esta guía es aplicable para cualquier sistema operativo, pero yo lo haré en mi equipo que corre Funtoo Linux.
0. Configuración del entorno de trabajo
Lo primero es tener el SDK instalado, lo cual está explicado aquí: Introducción a la programación con Android. Una vez hayamos instalado y configurado el SDK (incluyendo la adición del directorio tools al path del sistema) y tengamos un proyecto que compilar podemos iniciar el proceso de compilación. Es posible también crear el proyecto desde la línea de comandos así:
Donde -t 1 es el id de la plataforma para la que vamos a desarrollar la aplicación (el target). Se puede usar el comando android list targets para ver el listado de targets disponibles. -p indica la ruta de creación del proyecto y -a el nombre de la actividad inicial.
1. Compilación
Es posible usar Ant para compilar y empaquetar todo automáticamente… pero me gusta hacer cada cosa y saber qué está pasando por debajo. Así que haremos todo manualmente. El siguiente comando generará el archivo R.java (si no sabes de lo que hablo: Introducción a la programación con Android):
p= package-m -j srcindicar el directorio de los archivos fuente-Mindicar la ubicación del manifiesto-Sindicar la ubicación del directorio de recursos-I $ANDROID_DIR/android.jarañade el paquete android.jar al classpath del proyecto. Importante: en mi caso$ANDROID_DIRapunta a/opt/android/platforms/android-4/y en el path del sistema se encuentra incluido/opt/android/platforms/android-4/tools/Es importante tener en cuenta que NO se usa la base del SDK como antiguamente se hacía, sino el correspondiente directorio bajo platforms.
Ahora sí vamos a generar los archivos .class (por supuesto, es necesario tener el JDK de Java instalado):
Esto básicamente genera archivos .class en el directorio bin. Si la aplicación usara librerías de terceros, se debería agregar el parámetro -classpath=libs/*.jar
Puesto que los archivos .class están generados para la JVM, es necesario convertirlos a archivos para la Dalvik VM:
Ahora empaquetamos los recursos:
Ahora empaquetamos usando los bytecodes de Dalvik que creamos (classes.dex) para generar el paquete final:
Finalmente podemos instalarlo tal como escribí en Manipulación de smartphones con Android desde la consola de Linux:
Links interesantes: How to build Android application package (.apk) from the command line using the SDK tools + continuously integrated using CruiseControl y Developing Android without Eclipse or Ant
3 Comentarios | deja el tuyo





En esta entrada aprenderemos a manipular dispositivos móviles que tengan Android instalado a través de la consola en Linux. Esto es útil al momento de instalar aplicaciones, navegar entre los directorios del equipo, depurar las base de datos, etc. Además, no hay ningún fabricante de móviles (al menos que yo conozca) que proporcione herramientas para controlar los dispositivos desde Linux. En mi caso, tengo un HTC Tattoo el cual solo puede ser manipulado desde Windows usando HTC Sync 