🤖AndroidX Tracing 2.0 — поддержка Desktop JVM и Kotlin Coroutines
AndroidX Tracing — это библиотека для добавления данных в код, которая позволяет видеть что происходит внутри приложения в профилировщиках вроде Perfetto и Android Studio.
До версии 2.0 она была завязана исключительно на android.os.Trace — то есть работала только на Android. Теперь всё изменилось.
Версия 2.0 полностью пересматривает подход:
👉Поддержка Desktop JVM — трейсинг теперь работает не только на Android, но и на обычной JVM. Это открывает возможность профилировать host-инструменты, Gradle-таски и shared-код в KMP-проектах.
👉Propagation для корутин — классическая проблема: suspend-функции разрывали трейс на несвязанные куски и было непонятно что к чему относится. Теперь traceCoroutine() прокидывает контекст трейса через корутины автоматически.
👉Метаданные в слайсах — к каждому трейс-событию можно прикрепить аргументы. Видишь слайс в Perfetto и сразу понимаешь с какими параметрами он вызван.
👉Новый формат — Perfetto trace — трейсы совместимы с Android Studio и Perfetto UI из коробки.
Новый API выглядит так:
val driver = TraceDriver(sink = TraceSink(
sequenceId = 1,
directory = File("/tmp/perfetto")
), isEnabled = true)
driver.use {
driver.tracer.trace(category = CATEGORY_MAIN, name = "my_operation") {
// твой код
}
}
⚠️ Пока это только alpha и многих привычных возможностей нету, но будут к релизу Stable версии.
#Android#AndroidDev#KMP#AndroidX#Производительность
📹Переезжаем с фрагментов на (De)compose (35м)
В процессе перевода проекта на Jetpack Compose рано или поздно появляются вопросы: зачем нам вообще фрагменты, активити и вьюмодели, ведь можно реализовать навигацию прямо между Composable-функциями.
В приложении Мой Beeline разработчики двигаются в сторону компонентного подхода с помощью Decompose, так как он показался нам самым надёжным и стройным в своей красоте.
Своим докладом Павел Королев хочет показать, что жизнь за пределами стека Google существует. А также поделиться опытом, учитывая количество существующего кода, модульность проекта и стремление остаться в балансе с простотой решения.
#android#compose#навигация#decompose
🤖Улучшения R8 - минификатора кода в Android
В AGP 9.0 R8 получил несколько изменений, в основном направленных на оптимизацию Kotlin-кода, упрощение desugaring-пайплайна и улучшение диагностики.
Основные изменения:
👉 Новая опция -processkotlinnullchecks для обработки null-проверок, сгенерированных компилятором Kotlin. Можно задать одно из значений:
- keep - оставить проверки;
- remove_message - убрать сообщения об ошибках;
- remove - полностью удалить проверки.
Опция используется для уменьшения байткода и снижения runtime-накладных расходов в production. Я еще в 2019 писал статью про это и удалял код с помощью -assumenosideeffects
👉 Keep rules больше не применяются к companion methods
R8 перестал переносить keep-информацию на синтетические companion-методы, сгенерированные при desugaring интерфейсов.
Это ломает редкий кейс с minSdk < 24, но делает поведение более консистентным с остальными синтетическими элементами.
👉 Минимизированные имена синтетических классов в L8
L8 теперь генерирует более короткие имена для synthetic-классов ($1, $2 вместо длинных $$ExternalSynthetic...), что уменьшает размер DEX.
L8 — это утилита, стоящая за library desugaring в Android. Позволяет использовать новые API на старых версиях Android и править баги в них, делая использование API прозрачным.
AGP 9.0 прокачало R8 и L8, чтобы делать меньше лишнего байткода, более агрессивно оптимизировать Kotlin. Большинство изменений работают прозрачно, но в сумме дают более компактные сборки и более предсказуемый build-процесс.
🔗 Источник - документация по AGP 9.0
#Android#AndroiDev#Gradle#R8
✅ Через неделю
✅ Pytup
📅 28 марта / 18:30–20:30 (время Екатеринбургское, МСК+2) / Екатеринбург, ул. Хохрякова д.10, БЦ «Палладиум», 4 этаж
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/mYKbxc
Приглашаем Python-разработчиков послушать доклады экспертов, задать им вопросы и поговорить на профессиональные темы в кругу единомышленников.
На встрече мы обсудим расширение на Rust, непредсказуемость кода и приложение, которое помогает вывести продукт на рынок.
🔗 Программа: https://goo.gl/TisbTD
#frontend#python#Екатеринбург
✅ BIG DATA 2018
📅 28 марта / 09:30–18:00 (время МСК) / Москва, 1-й Зачатьевский пер., д. 4
💵 Платно
📝 Регистрация и условия участия тут: https://goo.gl/Rajgce
BIG DATA 2018 — это исчерпывающая картина текущего состояния и перспектив индустрии больших данных.
Участие в форуме поможет Вам выбрать правильное направление и найти надежных попутчиков на сложном пути перехода к цифровой экономике — экономике, основанной на данных.
🔗 Программа: https://goo.gl/RYpiwQ
#BigData#Москва
✅ Android Paranoid
📅 28 марта / 18:00–21:30 (время МСК) / Санкт-Петербург, Пискарёвский проспект, д.2к2, лит.Щ, БЦ «Бенуа», 5 этаж
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/5D5TCE
В этом году Андроиду исполняется десять лет. Отличный повод встретиться и поговорить про легендарную мобильную ОС! 😉
🔗 Программа: https://goo.gl/xHz2Hg
#android#java#mobile#mobileapps#СанктПетербург
🛒Приложения с Google Play Services смогут проверять была ли установка их продукта на устройстве, даже если происходил его сброс 🤯 Фича называется Device Recall
Приложения смогут сохранить и получить данные, связанные с конкретным устройством. Информация сохраняется на серверах Google, что позволит получить данные после переустановки и даже сброса устройства до заводских настроек.
#googleplay#gms#android#безопасность#googleio
🤖Google создаёт бенчмарк для оценки ИИ-моделей в Android-разработке
С каждым месяцем всё больше кода для Android пишется с помощью ИИ, но текущие модели далеко не всегда способны качественно решать реальные задачи Android-проектов.
Теперь Google готовит новый набор задач для обучения и оценки LLM-моделей, специально под Android.
🎯 Цель — создать эталон (“north star”) качественной Android-разработки и помочь создателям ИИ-моделей адаптировать их под реальные сценарии мобильной разработки.
📂 Бенчмарк основан на реальных pull-request’ах из публичных Android-репозиториев GitHub.
Методика простая:
1️⃣ Каждая модель должна сделать PR с решением задачи.
2️⃣ Результат проверяется автотестами, написанными людьми.
Так бенчмарк сможет объективно измерить, насколько ИИ умеет ориентироваться в больших кодовых базах и решать практические задачи Android-разработки.
🗓 Сейчас команда финализирует набор задач, а результаты планируют опубликовать в конце 2025 — начале 2026 года.
Остаётся дождаться, чтобы увидеть, какие модели действительно умеют писать Android-код — и насколько они приближаются к уровню живых разработчиков. Главное, чтобы тесты не подгоняли под Gemini, а сообществу дали возможность контрибьютить в бенчмарк 😉
#ии#ai#android#benchmark#google
📹Finding The Perfect Gemini fit on Android (13 мин)
Рассказ про GenAI модели из Google ML Kit и как можно их использовать на устройствах без подключения к сети (список моделей - флагманы 2024-2025 года)
#android#mlkit#ai#gemini#googleio