Я сейчас пытаюсь оптимизировать время сборки разрабатываемого приложения для Android. В настоящее время он собирается примерно за полторы минуты первоначальной и около минуты для инкрементной сборки. Я испробовал все рекомендации с этой страницы: https://developer.android.com/studio/build/optimize-your-build#optimize
Нам только что удалось избавиться от процессоров аннотаций, которые мы ранее использовали, но это не уменьшает начальное или дополнительное время сборки, а просто дает нам возможность использовать Мгновенный запуск - с которым у нас ранее было много проблем, например , вообще не горячая замена.
Мы провели некоторое профилирование и обнаружили, что более половины времени занято из задачи: app: packageProductionDebug.
Вот пример профилировщика одной из моих инкрементных сборок:
total: 58s
:app:packageProductionDebug 38.933s
:app:transformDexArchiveWithDexMergerForProductionDebug 6.697s
:app:transformClassesWithDexBuilderForProductionDebug 3.833s
:app:compileProductionDebugJavaWithJavac 2.891s
:app:transformClassesWithFirebasePerformancePluginForProductionDebug 1.530s
:app:processProductionDebugResources 1.500s
:app:compileProductionDebugKotlin 1.478s
Что делает эта задача? Я предполагаю, что это только упаковка ранее скомпилированного кода в apk. Если я не ошибаюсь, почему эта задача занимает 80% времени? Можно ли что-то сделать, чтобы улучшить это?