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
🐘 Вышел Gradle 8.13

🔥 Автоматическая загрузка JVM для Gradle Daemon: теперь Gradle может автоматически загружать необходимую версию JVM для работы Daemon, если подходящая версия не найдена локально.
👉 В Scala-плагине появилась возможность явно задавать версию Scala через расширение scala.
👉 Точные временные метки в JUnit XML: временные метки в отчетах JUnit XML теперь имеют миллисекундную точность, что улучшает детализацию отчетов.
🛠 Более 700 мелких исправлений и улучшений

Кроме того, добавлены улучшения для авторов сборок и разработчиков плагинов, включая улучшенный доступ к директории настроек в скриптах сборки, новый отчет о преобразовании артефактов, возможность создания пользовательских отчетов о тестировании и новый плагин distribution-base - сборка ZIP или TAR с необходимыми артефактами из проекта

#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36👎5
This media is not supported in your browser
VIEW IN TELEGRAM
🐘 Состояние Gradle Configuration Cache и будущее фичи

В больших проектах на Gradle одной из самых долгих является фаза конфигурации проекта, во время которой создаются все задачи и устанавливаются связи между ними.

Команда Gradle уже давно работает над решением этой проблемы с помощью Gradle Configuration Cache — возможности сохранять результаты фазы конфигурации и повторно использовать их в последующих запусках.

В блоге Gradle вышла подробная статья о текущем состоянии этой функции: State of the Configuration Cache. Согласно статье, начиная с Gradle 9 Configuration Cache будет включён по умолчанию система станет деликатно напоминать о необходимости включения Configuration Cache.

В одном из будущих мажорных релизов после Gradle 9, Configuration Cache станет единственным доступным режимом работы — но только после того, как к этому будет готово всё сообщество.

До этого момента Gradle будет активно улучшать технологию и сотрудничать с партнёрами для расширения совместимости и интеграций.

#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🤖 Как ускоряли скорость сборки в Android-приложении для продавцов Ozon (11 мин)

Для любого ускорения важно на первом этапе определить, как измерять результат, и уже потом применять улучшения.

Какие практики применялись:
👉 Включение Gradle Build и Configuration Cache
👉 Разделение тяжелых для сборки модулей на более мелкие, чтобы можно было выполнять работу параллельно
👉 Выделение API-модулей и превращение их в JVM/Kotlin-модули без Android-плагинов
👉 Замена KAPT на KSP
👉 Удаление неиспользуемых зависимостей с помощью анализа от Dependency Analysis Gradle Plugin
👉 Использование нетранзитивных R-классов
👉 Базовые рекомендации от Android-команды
👉 Включение всех опций Gradle для ускорения сборки

Читал статью, и меня не отпускало ощущение, что про всё это уже слышал много раз, и все советы взяты из стандартных лучших практик. Тем, кто не оптимизировал сборку, точно поможет.

#android #производительность #gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Media is too big
VIEW IN TELEGRAM
📹 Почему вам стоит включить Gradle Configuration Cache (46 мин)

Кэширование фазы конфигурации (configuration cache, СС) — одна из самых ожидаемых и очевидных оптимизаций в процессе Gradle-сборки. Однако стабильной эта оптимизация была объявлена относительно недавно — в Gradle 8.1.

Спикер рассказал о сложностях реализации CC и о «неожиданных» улучшениях производительности, которые может принести СС в вашу сборку. Если вы сомневались, поддерживать ли CC в своих сборках, — эти инсайты помогут вам ответить утвердительно.

Чтобы снять магический ореол с реализации Gradle и воодушевить вас на возможные open source-контрибуции, слайды сопровождаются ссылками на open source кодовую базу Gradle.

🔗 Скачать презентацию с сайта Mobius

#gradle #mobius
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29
Media is too big
VIEW IN TELEGRAM
📹 Android Builds: Simple Recipes to Enhance Developer Productivity (26 мин)

Видео с Gradle DPE Summit про основные советы по Gradle для Android разработчиков

00:00 Introduction
00:48 About Toast
03:09 Build Growth Challenges
05:21 Reducing Build Times
06:28 Hardware Solutions
08:08 Gradle Properties
11:36 Memory Management
16:05 Dependency Handling
19:40 CI Optimization
23:35 Agent Configuration
25:38 Conclusion

#android #gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
Отключите эти настройки Android в Gradle для ускорения сборки

В Android Gradle Plugin есть настройка разных build feature для включения разных опций
// Часть флагов могут быть доступны только в определнных типах модулей
// Указаны знгачения по умолчанию в Android Gradle Plugin 8.10.0
android {
buildFeatures {
// Включить/выключить Android ресурсы для библиотечных модулй
androidResources = true
aidl = false
buildConfig = false
compose = false
dataBinding = false
mlModelBinding = false
prefab = false
renderScript = false

// Генерация ресурсов из Gradle файла
resValues = true
shaders = true
viewBinding = false
}
}


Каждая из них отвечает за определенную опцию, но вот значение каждой опции будет зависеть от версии.

Я предпочитаю явно выключить все опции по умолчанию и в каждом модуле включать их только при необходимости в модуле в build.gradle.kts. Сделать это можно через gradle.properties
# Отключение ресурсов для Android Library модулей
android.library.defaults.buildfeatures.androidresources=false
android.defaults.buildfeatures.aidl=false
android.defaults.buildfeatures.resvalues=false
android.defaults.buildfeatures.databinding=false
android.defaults.buildfeatures.mlmodelbinding=false
android.defaults.buildfeatures.shaders=false
android.defaults.buildfeatures.prefabPublishing=false
android.defaults.buildfeatures.viewbinding=false


‼️ Больше полезных советов и статей в Базе Знаний Android разработчика

#android #gradle #лучшиепрактики
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54
Обзор(EN,7М) как оценивать время выполнения Gradle тасков в разных условиях для Android проектов. Если коротко - используйте Gradle Profiler и правильно настраивайте сценарий

🔗 Альтернативная ссылка

#android #gradle #производительность
👍14
🤖 Демоприложения: как жить, когда у вас 90+ application-модулей (15 мин)

Т-Банк активно использовал подход демоприложений для фичей (минимальные приложения для тестирования и быстрой сборки), что привело к 90 app-модулям в Gradle-проекте.

Разработчик из T-Банка рассказал, как они занялись оптимизацией этого подхода и упрощением его поддержки, а именно:
👉 как они ушли от кода интеграции в application-модулях
👉 придумали подход collector + initializer (плагинная архитектура для настройки модулей)
👉 перешли на библиотеку App Startup, избавились от нее и стали использовать стандартный Java ServiceLoader из-за увеличения времени сборки, так как Jetpack-библиотека требует Android-модули и создает много задач

#android #gradle #оптимизация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
🐘 Официальные лучшие Gradle практики от Google, JetBrains и разработчиков Gradle

#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45