Android – Como reducir y ofuscar tu apk

Para lograr reducir el tamaño de tu aplicación Android debes tener en cuenta varios factores, como el tamaño de las imágenes, la calidad de tu código, archivos y demás recursos estáticos que puedas estar utilizando. Sumado a esto Android te provee un método simple para habilitar la reducción de código utilizando un archivo ProGuard.

Sabemos que siempre debemos considerar el uso de la memoria interna en los dispositivos y aquí ProGuard nos ayudará en dicha tarea eliminando clases que no se utilizan, optimizando librerías externas o eliminándolas si no son utilizadas.

Algo muy bueno en este trabajo de ProGuard es la ofuscación de nuestro código ganando bytes a nuestro favor, ya que cambia y reduce nombres de variables, métodos, clases lo que en en aplicaciones medianas a grandes puede significar un ahorro significativo en el tamaño del apk. Además dificultará la ingeniería inversa aumentando la seguridad de tu aplicación.

Como activar la reducción de código y ofuscación en Android con ProGuard

Para activar la reducción de código en Android utilizando Proguard debes modificar tu archivo build.gradle activando minifyEnabled con el valor true

android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile(‘proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
    ...
}

Activando esta propiedad minifyEnabled, se utilizará el archivo proguard-android.txt por default que se encuentra en tu SDK dentro de la carpeta SDK/tools/proguard.

Mi recomendación es que pruebes sin realizar modificaciones en este archivo proguard-android.txt. Yo he obtenido buenos resultado dejando el archivo tal como esta, por default.

Ten en cuenta que esta reducción y ofuscación solo será realizada cuando generes tu apk en modo release.

Es necesario que pruebes tu apk a fin de asegurarte que este proceso no tiene problemas con tu app.

En dónde esta el archivo proguard

Si utilizas Android Studio, accediendo al menu File / Project Structure verás la ruta d tu sdk y en dónde deberás buscar en “\tools\proguard” el archivo proguard-android.txt.

Ten en cuenta que este archivo afecta todos los proyectos a menos que defina uno propio para un proyecto especifico.

En este caso la ruta del archivo proguard-android.txt es

    C:\Users\<user>\AppData\Local\Android\sdk\tools\proguard\proguard-android.txt

Probando la reducción

Realizando una prueba con uns simple aplicacion “Hola Mundo” en Android vemos que sin activar minifyEnabled obtenemos un archivo de 1206KB y luego al activarlo el mismo código se reduce a 712KB.

android-proguard-result

Conclusión

ProGuard reducuce el tamaño de tus aplicaciones con poco esfuerzo inicial sumando además la ofuscación del código que te dará un poco más de seguridad (aunque no infalible).

En la carpeta de tu SDK /tools/proguard hay buena cantidad de documentación en caso de que quierás revisarla.

El proyecto ProGuard lo encuentras en [http://proguard.sourceforge.net/]1

La documentación Android al respecto en [https://developer.android.com/studio/build/shrink-code.html]2

Hi! If you find my posts helpful, please support me by inviting me for a coffee :)

Ver también