#AndroidStudio #Marble #ApplyChanges
Android Studio Project Marble: Apply Changes
Google наконец-то прислушалась к мольбам Android разработчиков о улучшение Android Studio в плане стабильности, фикса багов и чрезмерного потребления ресурсов. результат этого - Project Marble, в рамках которого на протяжение релизов Android Studio 3.4 и дальше будет происходить работы над стабилизацией.
Первая статья в серии описывает падение Instant Run и замену его на Apply Changes, доступный в Android Studio 3.5. необходимость нового механизма возникла в том что Instant Run не справлялась со сложными приложениями.
Отличия в Apply Changes следующие:
👉 Минимальная поддерживаемая версия Android 8.0 Oreo
👉 Apply Changes не модифицирует APK во время сборки, а опирается на механизмы в Android 8.0, которые позволяют переопределять классы "на лету"
👉 Оптимизация механизма сравнения установленного и нового APK для вычисления разницы
Android Studio Project Marble: Apply Changes
Google наконец-то прислушалась к мольбам Android разработчиков о улучшение Android Studio в плане стабильности, фикса багов и чрезмерного потребления ресурсов. результат этого - Project Marble, в рамках которого на протяжение релизов Android Studio 3.4 и дальше будет происходить работы над стабилизацией.
Первая статья в серии описывает падение Instant Run и замену его на Apply Changes, доступный в Android Studio 3.5. необходимость нового механизма возникла в том что Instant Run не справлялась со сложными приложениями.
Отличия в Apply Changes следующие:
👉 Минимальная поддерживаемая версия Android 8.0 Oreo
👉 Apply Changes не модифицирует APK во время сборки, а опирается на механизмы в Android 8.0, которые позволяют переопределять классы "на лету"
👉 Оптимизация механизма сравнения установленного и нового APK для вычисления разницы
Medium
Android Studio Project Marble: Apply Changes
A deep dive into how the Android Studio team built Apply Changes, the successor to Instant Run.
#Performance #Gradle #Marble #AndroidGradlePlugin
Improving build speed in Android Studio
Статья о том как Google старается улучшить скорость сборки приложения в Android Studio (AS), хотя не совсем это получается по результатам работы на разных проектах. Причин этому несколько:
👉 Рост кодовой базы
👉 Spectre и Meltdown патчи снизили скорость процессоров
👉 Сторонние и собственные Gradle плагины, которые не поддерживают API последних версий Gradle, позволяющих ускорить сборку
👉 Использование Java 8 - приводит к работе desugar, что увеличивает время сборки. D8 и R8 позволяют снизить негативный эффект.
👉 Использование Kotlin, в особенности Kotlin annotation processing (KAPT), влияет на сборку
👉 Множество библиотек, построенных на Android Support Library, и требующих работы Jetifier при использование AndroidX библиотек
Для того чтобы решить проблемы Google активно работает с Gradle и JetBrains.
Google сделала множество улучшений в последних версиях Android Gradle Plugin:
👉 namespaced resources
👉 Инкрементальный annotation processor
👉 Поддержка Gradle Worker API
👉 Миграция на Gradle Lazy API
Как исправить положение дел в вашем проекте:
👉 Анализируйте производительность сборки вашего проекта с помощью Gradle Scan или Gradle profiler
👉 Используйте Gradle Lazy API, избегайте использовать I/O или любых других длительных операций
👉 Настраивайте все task-и в фазе конфигурации
👉 Настраивайте входные и выходные файлы/папки, чтобы ваши результат task-ов могли кэшироваться
👉 Разделяйте большие task-и на более мелкие, чтобы они могли кэшироваться независимо и выполняться инкрементально
👉 Убедитесь что один task не затирает результаты другого
👉 Используйте языки со статической типизацией (Java/Kotlin) вместо динамически типизируемых (Groovy) для написания ваших плагинов и Gradle скриптов
Improving build speed in Android Studio
Статья о том как Google старается улучшить скорость сборки приложения в Android Studio (AS), хотя не совсем это получается по результатам работы на разных проектах. Причин этому несколько:
👉 Рост кодовой базы
👉 Spectre и Meltdown патчи снизили скорость процессоров
👉 Сторонние и собственные Gradle плагины, которые не поддерживают API последних версий Gradle, позволяющих ускорить сборку
👉 Использование Java 8 - приводит к работе desugar, что увеличивает время сборки. D8 и R8 позволяют снизить негативный эффект.
👉 Использование Kotlin, в особенности Kotlin annotation processing (KAPT), влияет на сборку
👉 Множество библиотек, построенных на Android Support Library, и требующих работы Jetifier при использование AndroidX библиотек
Для того чтобы решить проблемы Google активно работает с Gradle и JetBrains.
Google сделала множество улучшений в последних версиях Android Gradle Plugin:
👉 namespaced resources
👉 Инкрементальный annotation processor
👉 Поддержка Gradle Worker API
👉 Миграция на Gradle Lazy API
Как исправить положение дел в вашем проекте:
👉 Анализируйте производительность сборки вашего проекта с помощью Gradle Scan или Gradle profiler
👉 Используйте Gradle Lazy API, избегайте использовать I/O или любых других длительных операций
👉 Настраивайте все task-и в фазе конфигурации
👉 Настраивайте входные и выходные файлы/папки, чтобы ваши результат task-ов могли кэшироваться
👉 Разделяйте большие task-и на более мелкие, чтобы они могли кэшироваться независимо и выполняться инкрементально
👉 Убедитесь что один task не затирает результаты другого
👉 Используйте языки со статической типизацией (Java/Kotlin) вместо динамически типизируемых (Groovy) для написания ваших плагинов и Gradle скриптов
Medium
Improving build speed in Android Studio
Posted by Leo Sei, Product manager on Android Studio
👍1