Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#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 скриптов
👍1
#AndroidGradlePlugin

Google Play Instant feature plugin deprecation

В Android Gradle Plugin 3.4.0 (AGP) помечены как deprecated 2 Gradle плагина: com.android.feature и com.android.instantapp. Изменения связаны с тем что в AGP 3.3.0 была добавлена поддержка Instant приложений в Android App Bundle.

Для тех кто использовал одни из старых плагинов нужно мигрировать на плагин com.android.dynamic-feature.

Руководство по миграции
👍1
#Gradle #AndroidGradlePlugin

Simple Guide to Android Product Flavors

Разбор в подробностях различных сборок приложения и как этот механизм реализован в Android Gradle Plugin c помощью Product Flavor и Build Type.
#AndroidGradlePlugin #Gradle #KotlinDSL

New APIs in the Android Gradle Plugin

Статья с обзором изменений в Android Gradle Plugin (AGP) 4.1. Нас ждет:
👉 Полная поддержка Gradle Kotlin DSL. Добились этого за счет выделения интерфейсов API и они написаны на Kotlin
👉 Опубликована новая документация по API AGP
👉 Новое Variant API (пример использования здесь), упрощающее работы с Tasks AGP и зависимостями на них
👉 Новое Artifcat API (пример использования здесь), которое позволяет эффективно управлять артефактами сборки Android проектов

Старое API останется работать и пока не будет удалено, но разработчиком Gradle плагинов стоит обратить внимание на изменения