Нормально ли иметь задачу app: packageProductionDebug, занимающую 70% времени сборки? - PullRequest
0 голосов
/ 27 марта 2019

Я сейчас пытаюсь оптимизировать время сборки разрабатываемого приложения для 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% времени? Можно ли что-то сделать, чтобы улучшить это?

1 Ответ

0 голосов
/ 27 марта 2019

Итак, я обнаружил, что заставляло задачу пакета выполняться так много времени.У меня были эти свойства в файле gradle.properties

org.gradle.daemon=true
org.gradle.jvmargs=-Xms1024m -Xmx5000m -Xcheck:jni -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

После удаления этих свойств задача пакета запускается в течение секунды и имеет общее время инкрементной сборки в течение примерно 15 секунд.Я понятия не имею, почему эти свойства вызвали такое резкое снижение производительности сборки, но мне все равно, поскольку у меня 15 секунд сборки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...