В чем разница между «minifyEnabled» и «useProguard» в Android-плагине для Gradle?

Я вижу, что Android-плагин для Gradle обладает свойством minifyEnabled а также свойством useProguard следующим образом:

 android { buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true } } } 

В чем разница между этими двумя свойствами? Или, точнее, в чем смысл каждого?

Цитата из tools.android.com :

Встроенная усадка

Версия 2.0 Android Plugin для Gradle поставляется с экспериментальной встроенной косой скобой, которую можно использовать вместо ProGuard. Встроенная термоусадочная муфта поддерживает быструю инкрементальную работу и предназначена для ускорения циклов итераций. Его можно включить, используя следующий фрагмент кода:

 android { buildTypes { debug { minifyEnabled true useProguard false proguardFiles getDefaultProguardFile('proguard-android.txt') } } } 

Встроенная усадка может удалить только мертвый код, он не запутывает или не оптимизирует. Он может быть настроен с использованием тех же файлов, что и ProGuard, но будет игнорировать все флаги, связанные с обфускацией или оптимизацией.

В отличие от ProGuard, мы поддерживаем использование встроенной усадки вместе с Instant Run: в зависимости от проекта, это может значительно уменьшить начальное время сборки и установки. Любые методы, которые становятся доступными после изменения кода, будут отображаться как новые, добавленные в программу, и предотвратить горячую паузу Instant Run.