В чем разница между "minifyEnabled" и "useProguard" в плагине Android для Gradle?
Я вижу, что плагин Android для Gradle имеет minifyEnabled
собственность, а также useProguard
свойства следующим образом:
android {
buildTypes {
debug {
minifyEnabled true
useProguard false
}
release {
minifyEnabled true
useProguard true
}
}
}
в чем разница между этими двумя свойствами? Или, скорее, в чем смысл каждого из них?
2 ответов
цитата из tools.android.com:
встроенный психиатру
версия 2.0 Android плагин для Gradle судов с экспериментальным встроенный шринкер кода, который можно использовать вместо ProGuard. Этот встроенный shrinker поддерживает быстрые инкрементные прогоны и предназначен для ускорения до итерации циклов. Его можно включить, используя следующий код фрагмент:
android { buildTypes { debug { minifyEnabled true useProguard false proguardFiles getDefaultProguardFile('proguard-android.txt') } } }
встроенный шринкер может только удалите мертвый код, он не запутывает и не оптимизирует. Его можно настроить, используя те же файлы, что и ProGuard, но будет игнорировать все флаги, связанные с запутыванием или оптимизация.
В отличие от ProGuard, мы поддерживаем использование встроенного шринкера вместе с Мгновенный запуск: в зависимости от проекта, он может значительно уменьшиться начальное время сборки и установки. Любые методы, которые становятся доступными после изменения кода появится как вновь добавленный в программу и предотвращать мгновенный запуск hotswap.
просто включить minifyEnabled
будет иметь код, оптимизированный и запутанный.
Это потому что useProguard true
по умолчанию, поэтому нет необходимости устанавливать его явно.
Смотрите также: запутывание в Android Studio