TGViewer
Android Broadcast Android Broadcast @android_broadcast · 14.5K subscribers
Post #10024 8.79K
🤖 R8 Configuration Analyzer - удобный способ изучить как ваша конфигурация R8 влияет на итоговый код в сборке

Keep rules из сторонних библиотек часто написаны с запасом: разработчик библиотеки не знает, как именно вы её используете, и кладёт широкое -keep class com.library.** { *; }. R8 видит это и выключает оптимизацию для всего пакета, даже если вашему приложению нужны оттуда три класса. AGP 9.3.0-alpha05 добавил инструмент, который это наконец показывает с цифрами.

Configuration Analyzer генерирует HTML-отчёт, в котором по каждому keep rule и по каждой библиотеке видны три метрики:
👉 Shrinking score - процент кода, доступного для удаления неиспользуемых классов и методов
👉 Optimization score - процент кода, доступного для инлайнинга, мёрджинга классов и прочих R8-оптимизаций
👉 Obfuscation score - процент кода, доступного для обфускации имён

Начиная с AGP 9.3.0-alpha05 отчёт генерируется автоматически в build/outputs/mapping/release/configanalyzer.html при каждом билде с квлюченной минификацией. Для AGP 9.2 и ниже нужно при запуске ./gradlew assembleRelease передать системный флаг com.android.tools.r8.dumpkeepradiushtmltodirectory с путём до папки куда сохранить отчет.

Помимо широких правил анализатор выделяет ещё два типа мусора:
👉 unused rules, которые не матчат ни один класс в текущем билде (обычно появляются после рефакторинга)
👉 subsumed rules, когда одно широкое правило перекрывает другое и делает его бессмысленным.

‼️ ВАЖНО: требует R8 9.3.7-dev, который идёт в комплекте только с AGP 9.3.0-alpha05. Это ранняя alpha. На продакшн-сборки без тщательной проверки не стоит.

Это первый инструмент с конкретными цифрами по влиянию сторонних библиотек на R8. Раньше это была область догадок и ручного анализа mapping-файлов. Теперь можно прийти к мейнтейнеру с отчётом и показать: вот твоё правило, вот 35% заблокированной оптимизации у нас в проекте. Круто если такой отчет можно будет получить как XML/JSON чтобы встраивать в другие инструменты.

#Android #AndroidDev #R8 #Performance #agp #Произодвительность
  • 👍 46
  • 👎 3
  • ❤ 1
More from @android_broadcast
  1. Sep 25, 2026🚀 Вышел WorkManager 2.12.0 👉 Новое экспериментальное Work Metrics API для изучения истор…
  2. Sep 25, 2026🚀 Вышел androidx.navigation3 1.2.0. И этот как раз допил того, что надо в реальных кейсах…
  3. Sep 25, 2026🚀 Google готовит библиотеку AndroidX Backup Test (пока только первая альфа) для тестирова…
  4. Sep 24, 2026Android Broadcast pinned a photo
  5. Sep 24, 2026🐘 Вышел Gradle 9.8.0 Что нового 👉 Поддержка Java 27 👉 Улучшили отображение ошибок в лог…
  6. Sep 24, 2026🚀 Google выкатила первую реализацию A2UI на Compose (пока в Альфе) Решение от Google уже…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →