DEV Community

Armando Picón
Armando Picón

Posted on • Originally published at Medium on

Desde nuestras clases hasta nuestro APK

Sketchnote sobre el proceso de pasar desde nuestras clases hasta tener el APK — by Armando Picón

Como Android Developers a veces pasamos por alto el proceso que se lleva a cabo por detrás y que de alguna forma nuestra IDE (Android Studio) nos oculta para no lidiar con ello.

Hoy en día con la inclusión de Kotlin a nuestro arsenal de lenguajes de programación disponibles para desarrollar aplicaciones Android es importante empezar a conocer dónde converge con otros nuestros otros lenguajes en especial con Java.

Generación de Java Bytecodes

En un principio, el proceso lo llevan a cabo los compiladores tanto de Java como de Kotlin para convertir el código fuente contenido en los archivos de extensiones .java y .kt a Java bytecodes que estarán contenidos en los archivos .class que podrían ser interpretados por la Java Virtual Machine (JVM). Menciono podrían porque en este proceso no se involucra a la JVM. Es importante señalar que estos bytecodes aún no son ejecutables por los entornos de ejecución de Android: Dalvik y Android Runtime (ART). Durante el proceso de compilación se toman en consideración las reglas descritas en nuestro archivo ProGuard, lo cual nos permite deshacernos de todo el código innecesario proveniente de las bibliotecas que nuestro proyecto haya declarado como dependencias. Hoy en día este proceso de optimización de dependencias es cubierto por R8, utilitario que además encierra las etapas que vienen a continuación en un único proceso.

Generación de Dex Bytecodes

La generación de los Dex Bytecodes pasan por dos etapas: La primera consiste en una etapa de desugaring lo que implica reemplazar todas aquellas características novedosas de Java 8 por características equivalentes que sean compatibles con versiones anteriores de Java y que sí son soportadas por dispositivos antiguos. En una siguiente etapa, el D8 Compiler (el nuevo dex compiler que remplaza a DX) toma los java bytecodes y los convierte a dex files los cuales pueden ser ejecutados por los entornos de ejecución de Android.

Creación del APK

Una vez que todo el código ha pasado por las compilaciones, se prepara un archivo empaquetado (.apk) el cual nos servirá como archivo de distribución para desplegarse en nuestros equipos con Android.

Referencias:


Top comments (0)