¿Cuál es la diferencia entre proguard-android.txt y proguard-rules.pro? -android

2 minutos de lectura

avatar de usuario
MBH

En mi buildType Veo esto:

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

Tengo algunas preguntas:

  1. ¿Por qué hay dos archivos?
  2. ¿Cuál es la diferencia entre ellos?
  3. ¿Dónde debo escribir mis reglas?

avatar de usuario
starkshang

los getDefaultProguardFile('proguard-android.txt') El método obtiene la configuración predeterminada de ProGuard del SDK de Android tools/proguard/
carpeta. los proguard-android-optimize.txt El archivo también está disponible en esta carpeta SDK de Android con las mismas reglas pero con las optimizaciones habilitadas. Las optimizaciones de ProGuard realizan análisis a nivel de bytecode, dentro y entre métodos para ayudar a que su aplicación sea más pequeña y se ejecute más rápido. Android Studio agrega el proguard-rules.pro archivo en la raíz del módulo, por lo que también puede agregar fácilmente reglas ProGuard personalizadas específicas para el módulo actual.

Por favor refiérase a esto: https://developer.android.com/studio/build/shrink-code

Lo que significa que debe agregar su archivo proguard personalizado en proguard-rules.pro,si desea separar algunas reglas para muchos archivos, puede hacerlo y declararlas después de esto:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

  • Si abre proguard-android.txt, encontrará la siguiente información: This file is no longer maintained and is not used by new (2.2+) versions of the # Android plugin for Gradle. Instead, the Android plugin for Gradle generates the # default rules at build time and stores them in the build directory.

    – Bevor

    8 de febrero de 2019 a las 15:20

los getDefaultProguardFile('proguard-android.txt') recuperará la configuración de ProGuard que está almacenada en el Android SDK en tools/proguard

los proguard-rules.pro es un archivo que se encuentra en la raíz del módulo. El propósito es permitirle agregar reglas personalizadas (ProGuard) que son específicas para el módulo.

Para más Información

¿Ha sido útil esta solución?