¿Cómo se produce la compilación y el empaquetado de un proyecto de Android?

Esta pregunta contiene dos partes del proceso de construcción del proyecto Android
Y ejecución del archivo .apk para el proyecto

Proceso de construcción
Un proyecto típico de Android contiene archivos de código fuente,
Archivos de recursos (diseño, cadena y color xmls, Manifest.xml),
Biblioteca (o Bibliotecas) si ha utilizado bibliotecas externas.
Y algunos otros recursos, como las imágenes como recurso dibujable.

1.El proceso de compilación comienza con la compilación de archivos de recursos
Por Android Asset Packaging Tool (aapt). También se encuentra un archivo llamado R.java
Producido durante esta etapa que permite hacer referencia a Recursos de archivos fuente Java.
Por ejemplo, si crea un botón en el archivo layout.xml como

<Botón
android: id = “@ + id / button1”
.
.
“.
/>

su entrada equivalente se realizará en R.java como

ID de clase final pública estática {
public static final int button1 = 0x7f050005;
.
.
.
}

Esto le permite tener un código como

Botón bt = (Botón) findViewById (R.id.button1);

2. La herramienta aidl (lenguaje de definición de interfaz de Android) convierte cualquier interfaz AIDL en interfaz Java.
3. Un compilador JAVA compila todos los archivos java de su proyecto y genera los archivos de clase correspondientes.


[fuente: developers.android.com (proceso de construcción y ejecución)]
4. La herramienta dx convierte todos los archivos de clase de su proyecto en código de byte dalvik. Todos los archivos .class
se convierten en un archivo .dex (Dalvik ejecutable).

5. Todos los recursos compilados, recursos no compilados, archivos .dex son paquetes en el archivo .apk (archivo de paquete de la aplicación de Android).
Esto resulta Project-debug.apk

6. Debe firmar su aplicación que luego da como resultado Project-release.apk

Proceso de ejecución:
Dalvik es la máquina virtual de proceso del sistema operativo Android.
Todo el código de byte dalvik en los archivos dex se ejecuta a través de esta máquina virtual. Puedes pensar tu apk como archivo jar. Los archivos dex como archivos de clase
y la VM Dalvik como JVM.

Puede explorar más sobre DVM en
Comprender la máquina virtual Dalvik

ACTUALIZAR:
El 25 de junio de 2014 se anunció que ART reemplazará completamente a Dalvik. Y ART será el tiempo de ejecución predeterminado en las nuevas versiones del sistema operativo Android

More Interesting

¿Cómo debería ser una aplicación ideal para compartir el viaje?

¿Cómo se puede encontrar el enlace profundo para una aplicación de Android?

¿Por qué las compañías como Google y Facebook publican principalmente su código fuente abierto bajo la licencia de Apache? ¿No son BSD o MIT mejores alternativas?

¿Cuál es la diferencia entre Android y Windows?

¿Cuáles son los navegadores web más rápidos para teléfonos inteligentes Android?

¿Qué son la memoria RAM y ROM? ¿Cómo afectan el rendimiento del teléfono celular?

¿Cómo funcionaría un iPhone con Android?

Samsung Note VS Wacom Intuos Pro: ¿cuál le permite escribir y dibujar lo más parecido a usar un lápiz y papel? Estoy tratando de no usar papeles con mi vida y parece que estas dos son las mejores opciones que tienen un precio razonable.

¿Cuándo se convertirá ICS y superior en la versión dominante de la plataforma del sistema operativo Android?

¿Tiene Android una papelera de reciclaje o los archivos eliminados se eliminan permanentemente?

¿Cuál es la aplicación de Android más efectiva para ahorrar batería?

¿Cómo restauro los mensajes .vmg de la tarjeta SD de mi teléfono Android?

¿Cómo puedo crear un juego de preguntas simple para Android?

Después de gobernar el mercado de teléfonos inteligentes con Android, ¿debería Google pensar en hacer un sistema operativo para computadora portátil, que sería compatible con la mayoría de los softwares y juegos como FIFA 15, COD, etc.?

Cómo calcular el costo de una aplicación de Android