La mayoría de las aplicaciones de Android no se compilan a código nativo, sino que se compilan en Java, lo que hace que se ejecuten en bytecode en una máquina virtual.
Como resultado, es posible tomar el bytecode, y generar código fuente Java que volverá a compilar al mismo bytecode. Cualquier optimización tiene lugar durante la recompilación dinámica a código …