Поиск…


Вступление

Proguard - это бесплатный инструмент для сжатия файлов Java, оптимизатор, обфускатор и преверизатор. Он обнаруживает и удаляет неиспользуемые классы, поля, методы и атрибуты. Он оптимизирует байт-код и удаляет неиспользуемые инструкции. Он переименовывает остальные классы, поля и методы, используя короткие бессмысленные имена.

Сократите свой код и ресурсы с помощью proguard

Чтобы файл APK был как можно меньше, вы должны включить сокращение, чтобы удалить неиспользуемый код и ресурсы в вашей версии сборки. На этой странице описано, как это сделать и как указывать, какой код и ресурсы сохранить или удалить во время сборки.

Сокращение кода доступно с помощью ProGuard, который обнаруживает и удаляет неиспользуемые классы, поля, методы и атрибуты из вашего упакованного приложения, в том числе из включенных библиотек кода (что делает его ценным инструментом для работы с лимитом ссылки 64k). ProGuard также оптимизирует байт-код, удаляет неиспользуемые инструкции кода и обфускает оставшиеся классы, поля и методы с короткими именами. Обфусканный код делает ваш АПК сложным для обратного проектирования, что особенно ценно, когда ваше приложение использует чувствительные к безопасности функции, такие как проверка лицензии.

Сокращение ресурсов доступно с плагином Android для Gradle, который удаляет неиспользуемые ресурсы из вашего упакованного приложения, включая неиспользуемые ресурсы в библиотеках кода. Он работает в сочетании с сокращением кода, так что после удаления неиспользуемого кода любые удаленные ссылки могут быть также безопасно удалены.

Сжатие кода

Чтобы включить сокращение кода с помощью ProGuard , добавьте minifyEnabled true в соответствующий тип сборки в файле build.gradle .

Имейте в виду, что сокращение кода замедляет время сборки, поэтому вам следует избегать использования его при сборке отладки, если это возможно. Тем не менее, важно, чтобы вы включили сокращение кода в своем конечном APK, используемом для тестирования, потому что это может привести к ошибкам, если вы недостаточно настроили какой код сохранить.

Например, следующий фрагмент файла build.gradle позволяет build.gradle для сборки релиза:

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

В дополнение к minifyEnabled собственности, proguardFiles свойство определяет ProGuard rules :

Метод getDefaultProguardFile ('proguard-android.txt') получает настройки ProGuard по умолчанию из tools/proguard/ folder Android SDK tools/proguard/ folder . Совет. Для еще большего сокращения кода попробуйте proguard-android-optimize.txt , расположенный в том же месте. Он включает в себя те же правила ProGuard, но с другими оптимизациями, которые выполняют анализ на уровне байт-кода внутри и между методами - чтобы уменьшить размер вашего APK и помочь ему работать быстрее. Файл proguard-rules.pro - это то, где вы можете добавить пользовательские правила ProGuard. По умолчанию этот файл находится в корне модуля (рядом с файлом build.gradle). Чтобы добавить дополнительные правила ProGuard, специфичные для каждого варианта сборки, добавьте другое свойство proguardFiles в соответствующий блок productFlavor . Например, следующий файл Gradle добавляет flavor2-rules.pro к вкусу аромата 2. Теперь flavor2 использует все три правила ProGuard, поскольку также применяются те из блока release.

android {
    ...
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                   'proguard-rules.pro'
        }
    }
    productFlavors {
        flavor1 {
        }
        flavor2 {
            proguardFile 'flavor2-rules.pro'
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow