В официальной документации R8 сказано, что для активации дополнительных оптимизаций я должен вставить это в файл gradle.properties
:
android.enableR8.fullMode=true
В документации сказано, что для того, чтобы приложениеЯ должен установить некоторые правила хранения, но нет подробных сведений о том, как он работает и какие действия он выполняет:
Поскольку из-за дополнительных оптимизаций R8 ведет себя иначе, чем ProGuard, они могут потребовать, чтобы вы добавили дополнительныеПравила ProGuard, чтобы избежать проблем во время выполнения. Например, скажем, что ваш код ссылается на класс через API Reflection Java. По умолчанию R8 предполагает, что вы намереваетесь исследовать объекты этого класса и манипулировать ими во время выполнения, даже если вы на самом деле этого не делаете, и автоматически сохраняет класс и его статический инициализатор.
Однако при использовании «fullmode ”, R8 не делает этого предположения, и, если R8 утверждает, что ваш код иначе никогда не использует класс во время выполнения, он удаляет класс из окончательного DEX вашего приложения. То есть, если вы хотите сохранить класс и его статический инициализатор, вам нужно включить правило сохранения в файл правил, чтобы сделать это.
ссылка на часто задаваемые вопросыв документации сказано только следующее:
полный режим R8
В полном режиме R8 выполняет более агрессивную оптимизацию, а это означает, что дополнительные правила конфигурации ProGuard могут бытьтребуется. В этом разделе освещаются некоторые распространенные проблемы, возникающие при использовании полного режима.
Как работает android.enableR8.fullMode
на самом деле?
Большое спасибо!