🤯 Конец Android View ближе чем кажется - в будущей версии Android Studio убирают поддержку превью для Custom View.
Источник - сайт Android Developers
#Android #AndroidDev #Compose #AndroidStudio
Источник - сайт Android Developers
#Android #AndroidDev #Compose #AndroidStudio
🤯104👎47🎉25👍16🔥13👌1
Давно пора было, чтобы кто-то взялся за оценку LLM системно. Вопрос "какая модель лучше пишет Android-код" висел в воздухе, и каждый отвечал на него субъективно или на основе личных впечатлений и умений.
Общие тесты, публикуемые при выходе модели, не говорят ничего про то, умеет ли модель разобраться в реальных задачах Android разработки. Android Bench закрывает именно этот пробел.
Задачи взяты из реальных публичных Android-репозиториев на GitHub — никакой синтетики, разного уровня сложности. Модель должна самостоятельно починить проблему, а результат проверяется через unit или instrumentation-тесты. Никакой субъективщины — только прогон тестов.
Модели справились только с 16–72% задач. Разброс огромный и показывает, где пропасть между разными моделями.
🔗 Подробности про Android Bench
🔗 Источник - блог Android Developers
#Android #AndroidDev #Benchmark #AI #ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👎20👍8❤3🔥3
🤯 Неожиданно по всем бенчмаркам побеждает Gemini модель . В тесте надо разбираться и понимать какая настройка давалась моделям, но почему-то сразу ощущается подкручивание результатов в пользу своих моделей.
💬 Как вы оцениваете результаты?
#Android #AndroidDev #Benchmark #AI #ИИ
#Android #AndroidDev #Benchmark #AI #ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🤯16👎8🤔2
На MWC 2026 Qualcomm анонсировала Snapdragon Wear Elite — первый чип серии Elite для носимых устройств. И это реально большое обновление на бумаге.
Чип сделан по 3нм техпроцессу. По сравнению с предыдущим Snapdragon W5+ Gen 2:
🔋 +30% к времени работы от батареи
Главная фишка — впервые в носимых появился выделенный Hexagon NPU с поддержкой моделей до 2B параметров прямо на устройстве 🤯
Это значит, что голосовые помощники, перевод, транскрибация и фитнес-аналитика смогут работать без облака.
Первые устройства ждём уже через несколько месяцев. Интересно, будет ли это заметно в реальном использовании или снова всё утонет в маркетинге AI-фич, а их работа приведет к быстрому сгоранию заряда батарейки на устройстве.
#Android #AndroidDev #WearOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35👎9🔥5❤3🤯2👌1
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 #Производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25👎6🔥6❤3🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
Одна из задач при скролле контента в ленте - убрать задержку показа/воспроизведения контента, чтобы у пользователя не было ожидания или оно было минимальным (при условии стабильного интернет соединения).
Для более быстрого старта воспроизведения видео стоит использовать Preload API в ExoPlayer из Jetpack Media 3. В посте приложил демонстрацию как это реально уменьшает задержку старта воспроизведения.
🔗 Опытом адаптации PreloadManager в приложение поделились в статье
🔗 Руководство по интеграции PreloadManager в документации
* Instagram признан экстремистcкой организацией на территории Российской Федерации
#Android #AndroidDev #ExoPlayer
Please open Telegram to view this post
VIEW IN TELEGRAM
❤38👍18👎7🔥7🤯2
This media is not supported in your browser
VIEW IN TELEGRAM
Я попробовал подключить Pixel 9 Pro к внешнему 4K монитору по Type-C. Итог - зернистость такая, что пользоваться невозможно. В настройках выбрать выше FullHD не дает (возможно, ограничение моего устройства). Приложения можно растягивать как угодно, что порой приводит к проблемам их отображения и они не перестраиваются полностью. Начало хорошее, но очень много работы с разработчиками по адаптации под больши экраны и ресайз на лету.
Google дала множества библиотек и руководств по адаптации под большие экраны, а также как работать с несколькими дисплеями.
🔗 Источник - Android Developers Blog
#Android #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍9👎6❤5🤔2
Разработчики популярного ORM для Android и KMP решили выпустить мажорную версию, чтобы отразить всю важность изменений:
👉 Полный переход на
androidx.sqlite driver API.👉 Генерация кода будет только на Kotlin, никакой больше Java.
👉 APT и KAPT больше не будут поддерживаться. Остается только KSP.
👉 Room API теперь будет делаться в подходе "Kotlin Coroutines first", делая весь ORM асинхронным по умолчанию.
Что нас ждет из новых фичей и возможностей:
👉 Появится полноценная поддержка JS и WASM-таргетов.
👉 Можно будет добавить собственные возвращаемые типы в Room. Например, Room, RxJava, Paging и пр.
Новая версия Room будет выпущена под новым пакетом androidx.room3. Room 2.X не получит новых фичей, только багфиксы.
🔗 Источник - блог Android Developers.
🔗 Release Notes Room 3.0.0-alpha01
#Android #AndroidDev #Room #SQLite #Jetpack #AndroidJetpack #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥86👍21👎7❤3🤯1
Команда LLVM toolchain в Google рассказала, как они применили AutoFDO (Automatic Feedback-Directed Optimization) к ядру Android — и результаты интересные.
Идея простая: обычный компилятор принимает решения об оптимизациях на основе статических эвристик. Встроить функцию или нет, какая ветка условия чаще выполняется — всё это угадывается без реальных данных из приложений и пользовательских сценариев.
AutoFDO меняет подход: компилятор получает профили реального выполнения кода и на их основе принимает куда более точные решения.Эта техника Google уже давно применяется к своей серверной инфраструктуре и ChromeOS, так что подход обкатанный и зарекомендовавший себя.
Кто знаком с ART Profiles — идея покажется знакомой. Там тот же принцип: собираем данные о реальном выполнении, отдаём компилятору, получаем более точный нативный код. Только ART Profiles работают на уровне ART для Java/Kotlin-кода конкретного приложения, а AutoFDO — на уровне ядра, C/C++ и LLVM. Разные слои, одна философия.
Для ядра профили собирают не с реальных устройств, а в лабораторных условиях: запускают топ-100 самых популярных приложений, используют
simpleperf и аппаратные возможности ARM для записи истории ветвлений. Собранные данные показывают 85% совпадение с профилями реального парка устройств — этого достаточно, чтобы считать подход рабочим.Результаты на ядрах 6.1, 6.6 и 6.12:
👉 холодный старт приложений стал быстрее на ~4%
👉 время загрузки сократилось на ~1%
👉 ядро занимает ~40% CPU-времени на Android, так что любая оптимизация здесь ощутима
Важный момент: AutoFDO не меняет логику кода, только влияет на решения компилятора — инлайнинг, раскладку кода. Функции, которые не попали в профили («холодные»), компилируются стандартным образом, без изменений.
Сейчас это уже в проде — профили включены в ветки android15-6.6 и android16-6.12, так что устройства на этих ядрах уже собираются с AutoFDO. Pixel-устройства точно попадают в эту категорию. С другими производителями сложнее: многие используют сильно модифицированное ядро и не переходят на GKI из AOSP, так что там это может быть не применено вовсе. В планах — GKI-модули, вендорные модули через DDK и поддержка новых версий ядра.
🔗 Источник - блог Android Developers
#Android #AndroidDev #Производительность #LLVM #Native
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥49👍8❤6👎4
Компания активно продвигает адаптацию Android-приложений под ноутбуки и десктопы, где управление происходит мышью и клавиатурой. Неудивительно, ведь скоро появится Android-ноутбук, есть Chromebook'и, да и телефоны уже давно предлагают подключать к большому монитору.
1️⃣ Появилось новое руководство по Desktop Experience. Это про то, как ваше приложение должно выглядеть и работать, когда пользователь запускает его в desktop-режиме. Там разобраны принципы компоновки под большие экраны, работа с курсором (включая кастомные иконки), windowing с header bar и подход к более высокой плотности информации в UI. Всё это логично вытекает из того, что Android всё активнее движется в сторону десктопа через функцию connected display.
2️⃣ Запустили Android Design Gallery — живой каталог с примерами хорошего дизайна под разные форм-факторы и паттерны UX. Обещают пополнять регулярно. Полезно хотя бы как источник вдохновения, когда застреваешь на том, как должен выглядеть адаптивный экран.
Честно говоря, руководство давно напрашивалось — адаптивная разработка под Android остаётся одним из самых недооценённых направлений. Большинство приложений на планшетах и десктопах до сих пор выглядят как растянутый телефон. Особенно что в Andorid 17 система будет игнорировать ограничения приложений на размеры окна и ориентацию, картина будет интересной.
🔗 Источник: Android Developers Blog
#Android #AndroidDev #Дизайн #UI
Please open Telegram to view this post
VIEW IN TELEGRAM
❤32👍12👎6🔥3
Помните историю с обязательной верификацией разработчиков за пределами Google Play? Ту, где сообщество буквально взорвалось возмущением — мол:
Google закрывает открытую платформу, прощай сайдлоадинг для всех, кто не хочет светить паспорт и платить регистрационный взнос.
Google тогда обещал прислушаться к обратной связи и решил понизить градус требований.
Теперь у пользователей будет так называемый advanced flow для установки приложений от неверифицированных разработчиков. Выглядит это как небольшой квест:
Официальная причина такой сложности — борьба с мошенниками. По данным GASA, в 2025 году 57% взрослых пользователей в мире столкнулись с мошенничеством, а суммарные потери составили $442 млрд (информация из анонса). Типичная схема: звонок с угрозами, давление и просьба срочно отключить защиту и установить "нужное" приложение. Многоэтапный флоу с ожиданием сутки как раз ломает эту цепочку — дать человеку время подумать.
Ещё одна приятная деталь — бесплатные аккаунты с ограниченным распространением для студентов и энтузиастов. До 20 устройств, без ID, без оплаты. Для тех, кто просто хочет поделиться своей поделкой с друзьями.
Google реально постарался найти баланс. Угроза мошенничества через сайдлоадинг — не выдуманная, суммы потерь говорят сами за себя. При этом hardcore-разработчики и опытные пользователи ничего принципиально не теряют, просто теперь нужно пройти однократный ритуал. Другой вопрос — насколько этот "ритуал" будет раздражать тех, кто устанавливает сторонние приложения регулярно. Я вижу два лагеря: одни скажут "ну наконец-то хоть что-то для безопасности обычных людей", другие — "очередное закручивание гаек под видом заботы". И честно — оба правы по-своему.
Вступает в действие в августе 2026 с разворачиванием новый системы верификации разработчиков
🔗 Источник - Блог Android Developers
#Android #AndroidDev #GooglePlay #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎46👍32🔥5🤔5
Стандартный LRU-кэш не знает ничего о времени — он выбрасывает записи только когда заканчивается место. Поэтому в дисковом кэше Glide могут месяцами лежать устаревшие изображения, пока не будет достигнут лимит размера.
Команда Grab описала подход TLRU (Time-Aware LRU) — форк DiskLruCache с тремя дополнительными параметрами:
1️⃣ TTL — время жизни записи. Если
(текущее_время - время_последнего_доступа) > TTL, запись удаляется2️⃣ Минимальный порог — защита от полного сброса. Если пользователь долго не заходил и все записи устарели, кэш всё равно не очищается полностью — иначе при возвращении все изображения загружались бы заново
3️⃣ Максимальный размер — наследуется от LRU без изменений
Реализация аккуратная: метка времени последнего доступа хранится прямо в journal-файле, переживает перезапуски. Алгоритм оптимизирован — если самая старая запись ещё не устарела, остальные не проверяются.
Миграция со старого LRU безопасна в обе стороны: оригинальный
DiskLruCache читает TLRU journal, просто игнорируя временны́е суффиксы.Мне нравятся такие решения, когда не надо переписывать с нуля, а точечно расширить проверенную реализацию. Три параметра поверх существующего механизма — и кэш наконец умеет забывать ненужное. Ну и честно - решение лежало на поверхности и вполне логичное.
🔗 Источник: engineering.grab.com
#Android #AndroidDev #Производительность #Оптимизация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39❤15👎6🔥3🤔1👌1
🔥 Firebase Crashlytics получил MCP-сервер
В экспериментальном режиме Firebase запустили MCP-сервер для Crashlytics. Раньше, чтобы вытащить данные для анализа, нужно было настраивать экспорт в BigQuery, разбираться с Cloud Logging, писать SQL-запросы. Целый пайплайн ради того, чтобы понять что происходит со стабильностью приложения. Теперь всё это стало ощутимо проще.
Через MCP агент получает прямой доступ к данным Crashlytics: может вытащить список активных проблем с приоритетами, разобрать конкретный краш по ID со всеми стектрейсами и метаданными, получить агрегированную статистику по событиям и затронутым пользователям. Плюс умеет добавлять заметки к ишью и менять его статус прямо в ходе разговора.
Многие крашлитиковские ишью на практике достаточно простые, и агент вполне способен с ними справиться самостоятельно. Можно выстроить полный цикл: агент ночью смотрит новые крашы, разбирает их, создаёт задачи, предлагает или сразу делает фиксы, оставляет комментарии со всем контекстом. Раньше для этого не хватало именно доступа к данным мониторинга — теперь этот кусок закрыт.
🔗 Источник: firebase.google.com
#Firebase #Crashlytics #MCP #AndroidDev #Android
В экспериментальном режиме Firebase запустили MCP-сервер для Crashlytics. Раньше, чтобы вытащить данные для анализа, нужно было настраивать экспорт в BigQuery, разбираться с Cloud Logging, писать SQL-запросы. Целый пайплайн ради того, чтобы понять что происходит со стабильностью приложения. Теперь всё это стало ощутимо проще.
Через MCP агент получает прямой доступ к данным Crashlytics: может вытащить список активных проблем с приоритетами, разобрать конкретный краш по ID со всеми стектрейсами и метаданными, получить агрегированную статистику по событиям и затронутым пользователям. Плюс умеет добавлять заметки к ишью и менять его статус прямо в ходе разговора.
Многие крашлитиковские ишью на практике достаточно простые, и агент вполне способен с ними справиться самостоятельно. Можно выстроить полный цикл: агент ночью смотрит новые крашы, разбирает их, создаёт задачи, предлагает или сразу делает фиксы, оставляет комментарии со всем контекстом. Раньше для этого не хватало именно доступа к данным мониторинга — теперь этот кусок закрыт.
🔗 Источник: firebase.google.com
#Firebase #Crashlytics #MCP #AndroidDev #Android
👍58👎9
Вышла отдельная статья в блоге со скриншотами — можно наконец посмотреть как пикер выглядит в живую.
Из того, что не было в анонсе: на Android 17 старые
ACTION_PICK с контактными типами автоматически апгрейдятся до нового пикера. То есть часть приложений получит приватный выбор контактов вообще без изменений кода. Приятный бонус для тех, кто не торопится мигрировать.В Compose интегрируется через
rememberLauncherForActivityResult — код в статье рабочий, можно брать напрямую.🔗 Источник: android-developers.googleblog.com
📖 Документация: developer.android.com
#Android #AndroidDev #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45👎9
В Android 17 появилось новое ограничение, которое затронет авторов музыкальных плееров, подкаст-приложений и всего, что воспроизводит звук в фоне без видимого UI.
Суть в следующем: теперь аудио фреймворк проверяет, имеет ли приложение право взаимодействовать с аудио в фоне. Без корректно запущенного foreground service с While-In-Use (WIU) возможностями звук просто отключится.
WIU — это условие, при котором Foreground Service запущен из видимого UI или в ответ на
MediaSessionEvent. Если FGS запущен, например, по BOOT_COMPLETE и лезет в аудио — он будет заблокирован.Рекомендуемый путь — использовать Jetpack Media3
MediaSessionService, который сам управляет жизненным циклом и не требует дополнительных телодвижений. Если media3 не используется, нужно вручную следить за тем, чтобы mediaPlayback FGS запускался из foreground и оставался живым на время транзиентных сбоев (не дольше 10 минут).На мой взгляд, изменение правильное. Баги, когда приложение просыпается через несколько часов после заморозки и неожиданно начинает воспроизведение — реальная проблема. Другой вопрос, что тихая блокировка без каких-либо ошибок в API сделает диагностику неочевидной. Инструменты вроде `adb dumpsys audio` и logcat помогут, но разработчики, которые не читают changelog, узнают об этом только от пользователей.
🔗 Источник developer.android.com
#Android #AndroidDev #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41👎14
Вышел стабильный релиз CameraX 1.6.0. Цикл разработки был долгим, зато список изменений получился весомым.
👉 Переход на CameraPipe — CameraX теперь работает на том же стеке, что и приложение камеры Pixel. Все оптимизации и новые computational photography фичи отныне приходят в CameraX автоматически.
👉 Media3 Muxer по умолчанию — видеозапись через
VideoCapture теперь использует Media3 Muxer. Если приложение упадёт во время записи, файл не повредится. Плюс более эффективный процессинг в целом.👉 Feature Group обновился —
GroupableFeatures пополнился константами VIDEO_STABILIZATION и UHD_RECORDING. Теперь их можно комбинировать с другими фичами в одном SessionConfig, туда же вписываются CameraEffect и ImageAnalysis.👉 SessionConfig стал стабильным API — вышел из experimental вместе с
HighSpeedVideoSessionConfig. Появился isSessionConfigSupported для проверки совместимости конкретной комбинации фич до биндинга к lifecycle. Также появился ExtensionSessionConfig для работы с CameraX Extensions.Также исправили баг на Android 17. Версия 1.5.2 падает.
🔗 Источник - developer.android.com
#Android #AndroidDev #CameraX #Jetpack #Камера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39👎6
Вышла Android 17 Beta 3 и все изменения там касаются геолокациии
👉 Location Button — разовый доступ к точной геолокации
Новый UI-элемент из Jetpack, который даёт доступ к точным координатам прямо в момент нажатия, без постоянного разрешения. Пользователь нажал кнопку "поделиться местоположением" в вашем приложении — получил данные один раз в рамках сессии. Никаких диалогов с выбором "разрешить всегда / только сейчас". Кнопку можно кастомизировать: цвет, форма, текст из предопределённого списка. Иконка местоположения остаётся обязательной и неизменной. На Android 16 и ниже Jetpack автоматически откатывается к стандартному диалогу разрешений.
👉 Примерная геолокация стала умнее
До этого "приблизительный" режим использовал фиксированную сетку 2×2 км. В малонаселённых районах это фактически деанонимизирует пользователя, потому что в квадрате 2 км может быть буквально несколько человек. В Android 17 размер ячейки теперь зависит от плотности населения — чем меньше людей, тем больше область. Логично, что давно должно было быть так.
👉 Индикатор использования геолокации
По аналогии с микрофоном и камерой, при любом обращении к геолокации теперь будет появляться системный индикатор. Плюс — диалог с историей последних обращений с возможностью сразу перейти в настройки разрешений.
👉 Переработанный диалог разрешений
"Точное" и "Приблизительное" местоположение теперь визуально сильнее разделены, чтобы пользователь осознанно выбирал нужный уровень доступа.
🔗 Источник: android-developers.googleblog.com
#Android #AndroidDev #Android17 #Приватность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64👎8
Сайдлоадинг умрёт?
Нет. Верификация направлена против мошенников, а не против свободы установки. Верифицированные разработчики распространяют APK через любые каналы как раньше.
Что будет с установкой по ADB?
Нет. Сборка, отладка и деплой через ADB работают как прежде без регистрации. Регистрация нужна только если тестирование идёт через Firebase App Distribution, Play Internal Testing или APK отдаётся тестировщикам вне ADB.
Я занимаюсь разработкой как хобби, мне нужно будет пройти верификацию?
Нет. Для студентов и хобби-разработчиков вводится бесплатный аккаунт с ограниченным числом устройств без идентификации.
Зачем это вообще нужно?
На Play Store аналогичная схема уже дала двузначное снижение активности мошенников. Создать тысячи верифицированных аккаунтов с реальными документами несравнимо дороже, чем сделать это один раз как честному разработчику. Это не убирает всех, но делает порог выше. Плюс опыт пользователей с мошенничеством в разных странах разный, как и схемы обмана.
Ранний доступ стартует в октябре 2025 года, можно записаться уже сейчас.
#Android #AndroidDev #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👎35👍6
Вышла новая версия Media3, и там заметное обновление для тех, кто строит плеерный UI на Compose. Главное в этом релизе — продолжение развития модуля
media3-ui-compose-material3. Добавили готовый Player composable, который объединяет ContentFrame с настраиваемыми элементами управления сверху, по центру и снизу. Рядом появился ProgressSlider для перемотки через жесты и PlaybackSpeedControl с кнопкой переключения скорости. На мой взгляд, это уже почти полноценный out-of-the-box плеер на Compose Material3.Breaking changes:
👉
FrameExtractor вынесен в отдельный модуль media3-inspector-frame 👉
LottieOverlay переехал в media3-effect-lottie🔗 Источники: android-developers.googleblog.com
#Android #AndroidDev #Jetpack #Медия
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24👎6
Google объявила, что с 15 сентября 2026 года все новые приложения и обновления для Wear OS, содержащие нативный код (C/C++), должны включать 64-битную версию наряду с 32-битной. Google Play начнёт блокировать загрузку несовместимых APK/AAB.
Что нужно сделать разработчикам:
👉 Проверьте, есть ли в вашем приложении нативный код (файлы
.so в lib/armeabi-v7a или lib/arm64-v8a). Даже если вы не пишете на C++, зависимости или SDK могут его добавлять.👉 Для каждой 32-битной ABI (
armeabi-v7a) добавьте 64-битную (arm64-v8a).👉 Обновите сторонние SDK до версий с поддержкой 64 бит.
👉 Протестируйте приложение на 64-битном эмуляторе Wear OS (все новые образы уже 64-битные).
⚠️ Политика 32-битной поддержки не отменяется — Google Play по‑прежнему будет доставлять приложения на старые 32-битные устройства.
🔗 Гайд по миграции
🔗 Источник - Android Dev Blog
#WearOS #AndroidDev #GooglePlay
Please open Telegram to view this post
VIEW IN TELEGRAM
👎14👍12