¿Qué es Proguard y cómo habilitar Proguard en Android Studio?

Proguard es un reductor, optimizador, ofuscador y preverificador de archivos de clase Java gratuito. Detecta y elimina clases, campos, métodos y atributos no utilizados. Optimiza el código de bytes y elimina las instrucciones no utilizadas. Cambia el nombre de las clases, campos y métodos restantes utilizando nombres cortos sin sentido.

Reducción: detecta y elimina clases, campos, métodos y atributos no utilizados.

Optimización: analiza y optimiza el código de bytes de los métodos.

Ofuscación: cambia el nombre de las clases, campos y métodos restantes utilizando nombres cortos sin sentido.

¿Por qué Proguard para Android?

Las aplicaciones de Android son bastante fáciles de realizar ingeniería inversa, por lo que si desea evitar que esto suceda, debe usar Proguard para su función principal: Ofuscación. Las otras dos funciones importantes de Proguard son Reducción y Optimización. La reducción elimina los códigos no utilizados y es muy útil. Sin embargo, la optimización funciona con el código de bytes de Java, ya que Android se ejecuta en un código de bytes especial que se convierte del código de bytes de Java, algunas optimizaciones no funcionarán bien.

Beneficios

Proguard ofusca su código al eliminar el código no utilizado y renombrar clases, campos y métodos con nombres semánticamente oscuros que hacen que la base del código sea más pequeña y más eficiente. El resultado es un archivo .apk de menor tamaño que es más difícil de realizar ingeniería inversa.

¿Habilitar Proguard en Android Studio?

Proguard está integrado en el sistema de compilación de Android. Proguard solo se ejecuta cuando compila su aplicación en modo de lanzamiento. Hacer que Proguard se ejecute es completamente opcional, pero muy recomendable.

En el proyecto de Android Studio, la propiedad minifyEnabled en el archivo build.gradle habilita y deshabilita Proguard para versiones de lanzamiento. La propiedad minifyEnabled es parte del bloque de versión buildTypes que controla la configuración aplicada a las versiones de lanzamiento.

Establezca la propiedad minifyEnabled en true para habilitar Proguard.

El método getDefaultProguardFile (‘proguard-android.txt’) obtiene la configuración predeterminada de Proguard de la carpeta de herramientas / proguard de Android SDK.

Android Studio agrega el archivo http://proguard-rules.pro en la raíz del módulo, lo que ayuda a agregar reglas de Proguard personalizadas.

Inconvenientes

La posible configuración incorrecta hace que la aplicación se bloquee.

Se requieren pruebas adicionales

Los Stacktraces son difíciles de leer con nombres de métodos ofuscados.

ClassNotFoundExceptions, que ocurre cuando Proguard elimina una clase completa a la que llama la aplicación.

Podemos arreglar ClassNotFoundExceptions agregando una línea -keep en el archivo de configuración de Proguard.

-tiene clase pública

¡Feliz codificación!

¿Necesitas ayuda?

Somos Perfomatix Nos especializamos en la creación de API y aplicaciones móviles altamente escalables y también tenemos una gran experiencia en aplicaciones de IoT , aplicaciones de realidad virtual y aplicaciones de realidad aumentada . Póngase en contacto con nosotros para descubrir cómo podemos ayudarlo a configurar su idea disruptiva en un prototipo, MVP y finalmente en un producto asesino. Visite nuestra sección de historias de éxito para obtener más información sobre algunas de las nuevas empresas que lo hicieron grande con nosotros. Desea que creemos su próxima aplicación.

Haga un contacto rápido con nuestros expertos aquí [1] .

Notas al pie

[1] ISO 9001: 2015 Empresa de desarrollo de aplicaciones certificada | Perfomatix

Para que su archivo APK sea lo más pequeño posible, debe habilitar la reducción para eliminar el código y los recursos no utilizados en su versión de lanzamiento.

La reducción de código está disponible con ProGuard, que detecta y elimina clases, campos, métodos y atributos no utilizados de su aplicación empaquetada, incluidos los de las bibliotecas de códigos incluidas.

ProGuard también optimiza el código de bytes, elimina las instrucciones de código no utilizadas y ofusca las clases, campos y métodos restantes con nombres cortos. El código ofuscado hace que su APK sea difícil de realizar ingeniería inversa, lo que es especialmente valioso cuando su aplicación utiliza funciones sensibles a la seguridad, como la verificación con licencia.

La reducción de recursos está disponible con el complemento de Android para Gradle, que elimina los recursos no utilizados de su aplicación empaquetada, incluidos los recursos no utilizados en las bibliotecas de códigos. Funciona junto con la reducción del código, de modo que una vez que se ha eliminado el código no utilizado, cualquier recurso que ya no se haga referencia también se puede eliminar de forma segura.

Para habilitar la reducción de código con ProGuard, agregue minifyEnabled true al tipo de compilación apropiado en su archivo build.gradle .

Para instrucciones más detalladas:

Reduzca su código y recursos

Proguard? !!

“me mostró cómo un fragmento de solo 1 palabra (verdadero / falso) desperdició mis 48 horas de vida para mi primera aplicación”

  • Archivo Proguard : es una clase donde puede especificar (como decirle a Java) sus clases / funciones / campos importantes … etc., para que no se eliminen cuando reduzca / minimice Habilitado su aplicación.
  • Cómo usar : Para habilitar / activar este archivo / clase de protección (mencionado anteriormente), debe establecer minifyEnabled en “verdadero ” i n build.gradle . MinifyEnabled puede estar presente en 2 áreas: compilación de depuración (ejecutando la aplicación a través de Android Studio) y compilación de lanzamiento (ejecutando la aplicación desde PlayStore después de publicar)
  • Por qué usar:
  • Para hacer que su archivo APK sea lo más pequeño posible (así que reduzca / minfy, habilítelo).
  • Dicho código (código reducido) hace que su APK sea difícil de realizar ingeniería inversa , por lo que nadie puede hackear su aplicación (o al menos no será fácil para el pirata informático).
  • Nota : Tenga en cuenta que la reducción de código (minifyEnabled true) ralentiza el tiempo de compilación, por lo que debe evitar usarlo (es decir, establecer minifyEnabled en false) en su compilación de depuración si es posible.
  • Mi consejo : evite usarlo (es decir, configure minifyEnabled en falso) en su versión de lanzamiento también si es nuevo en esto / un principiante en el desarrollador de la aplicación. Siempre me gusta eso.
  • Feliz codificación hermano!

    (Si tiene una mentalidad emprendedora, hágamelo saber)

    Puede probar una nueva solución para proteger la aplicación de Android del descompilador:

    Obfuscator for Java source – Aplicaciones de Android en Google Play

    * Funciones principales: ofuscar todo el nombre del archivo; nombre de la clase; nombre del método; nombre de la variable
    * Opción avanzada:
    – Nombre de objeto especial: use caracteres especiales para funciones / variables de ofuscación
    – Nombre de archivo especial: use caracteres especiales para clases / ofuscación de nombre de archivo
    – Protección del paquete: ocultar el nombre del paquete
    – Protección de cadena: oculta todos los valores de cadena, hazlos invisibles para leer (“abc” -> “…”)
    – Inyección de código falso: inyecta código falso en la fuente para atrapar las herramientas del descompilador
    – Protección de cadenas de recursos: compruebe y detenga cualquier cambio de cadenas de recursos
    – Ocultar / mostrar la fuente original en el proyecto de resultados.
    – Regla de mapeo definida por el usuario
    – Código falso definido por el usuario
    Muestra para revisión : _Obfuscated.1125.11-10-07.9.GreenSMS [1] .rar

    Guía de uso: – ¿Cómo usar ProGuard en Android Studio?

    Qué es: – Reduzca su código y recursos

    Proguard es una herramienta de Android utilizada para reducir el código. Elimina clases, archivos y métodos no utilizados de su apk de compilación y ayuda a reducir el tamaño del archivo apk.

    Para habilitar esto, use la propiedad minifyEnable en su archivo de calificación.

    Para obtener más información, consulte el sitio web para desarrolladores de Android.