en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

Android Broadcast

Android Broadcast

Open in Telegram

Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR

Show more

📈 Analytical overview of Telegram channel Android Broadcast

Channel Android Broadcast (@android_broadcast) in the Russian language segment is an active participant. Currently, the community unites 14 573 subscribers, ranking 8 794 in the Technologies & Applications category and 44 714 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 14 573 subscribers.

According to the latest data from 26 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 61 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 39.85%. Within the first 24 hours after publication, content typically collects 23.09% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 5 811 views. Within the first day, a publication typically gains 3 367 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 28.
  • Thematic interests: Content is focused on key topics such as api, kotlin, gradle, сборка, androiddev.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
“Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR”

Thanks to the high frequency of updates (latest data received on 27 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

14 573
Subscribers
-124 hours
-27 days
+6130 days
Attracting Subscribers
Oct '26
October '26
+164
in 4 channels
September '26
+127
in 4 channels
Get PRO
August '26
+102
in 3 channels
Get PRO
July '26
+99
in 2 channels
Get PRO
June '26
+156
in 19 channels
Get PRO
May '26
+170
in 4 channels
Get PRO
April '26
+192
in 4 channels
Get PRO
March '26
+200
in 5 channels
Get PRO
February '26
+167
in 4 channels
Get PRO
January '26
+146
in 4 channels
Get PRO
December '25
+159
in 6 channels
Get PRO
November '25
+160
in 4 channels
Get PRO
October '25
+325
in 7 channels
Get PRO
September '25
+144
in 6 channels
Get PRO
August '25
+161
in 3 channels
Get PRO
July '25
+167
in 9 channels
Get PRO
June '25
+118
in 9 channels
Get PRO
May '25
+219
in 10 channels
Get PRO
April '25
+179
in 4 channels
Get PRO
March '25
+281
in 6 channels
Get PRO
February '25
+211
in 6 channels
Get PRO
January '25
+235
in 4 channels
Get PRO
December '24
+241
in 7 channels
Get PRO
November '24
+171
in 4 channels
Get PRO
October '24
+194
in 4 channels
Get PRO
September '24
+261
in 7 channels
Get PRO
August '24
+238
in 12 channels
Get PRO
July '24
+174
in 6 channels
Get PRO
June '24
+249
in 8 channels
Get PRO
May '24
+392
in 9 channels
Get PRO
April '24
+327
in 6 channels
Get PRO
March '24
+359
in 9 channels
Get PRO
February '24
+411
in 8 channels
Get PRO
January '24
+413
in 6 channels
Get PRO
December '23
+336
in 12 channels
Get PRO
November '23
+146
in 10 channels
Get PRO
October '23
+247
in 6 channels
Get PRO
September '23
+273
in 0 channels
Get PRO
August '23
+398
in 0 channels
Get PRO
July '23
+457
in 0 channels
Get PRO
June '23
+423
in 0 channels
Get PRO
May '23
+521
in 0 channels
Get PRO
April '23
+335
in 0 channels
Get PRO
March '23
+693
in 0 channels
Get PRO
February '23
+331
in 0 channels
Get PRO
January '23
+408
in 0 channels
Get PRO
December '22
+594
in 0 channels
Get PRO
November '22
+238
in 0 channels
Get PRO
October '22
+270
in 0 channels
Get PRO
September '22
+201
in 0 channels
Get PRO
August '22
+257
in 0 channels
Get PRO
July '22
+328
in 0 channels
Get PRO
June '22
+256
in 0 channels
Get PRO
May '22
+317
in 0 channels
Get PRO
April '22
+303
in 0 channels
Get PRO
March '22
+580
in 0 channels
Get PRO
February '22
+347
in 0 channels
Get PRO
January '22
+224
in 0 channels
Get PRO
December '21
+275
in 0 channels
Get PRO
November '21
+228
in 0 channels
Get PRO
October '21
+196
in 0 channels
Get PRO
September '21
+281
in 0 channels
Get PRO
August '21
+288
in 0 channels
Get PRO
July '21
+334
in 0 channels
Get PRO
June '21
+237
in 0 channels
Get PRO
May '21
+323
in 0 channels
Get PRO
April '21
+427
in 0 channels
Get PRO
March '21
+502
in 0 channels
Get PRO
February '21
+460
in 0 channels
Get PRO
January '21
+360
in 0 channels
Get PRO
December '20
+5 512
in 0 channels
Date
Subscriber Growth
Mentions
Channels
27 October+1
26 October+6
25 October+2
24 October+3
23 October+6
22 October+3
21 October+3
20 October+1
19 October+3
18 October+1
17 October+5
16 October+4
15 October+1
14 October+4
13 October+4
12 October+10
11 October+11
10 October+6
09 October+9
08 October+25
07 October+3
06 October+8
05 October+8
04 October+9
03 October+5
02 October+5
01 October+18
Channel Posts
🐘 AGP 9.6: покрытие инструментальных тестов без JaCoCo при сборке Чтобы посчитать покрытие кода инструментальными тестами, Android Gradle Plugin (AGP) по умолчанию встраивает счётчики JaCoCo в классы приложения прямо во время сборки. В AGP 9.6.0-alpha01 появился экспериментальный режим с агентом на устройстве: приложение собирается без этого кода, а классы инструментирует агент на тестовом устройстве во время прогона. По данным Google, сборка ускоряется на 10–20%, debug APK становится меньше на 20–25%, а неиспользуемые сгенерированные классы перестают занижать процент покрытия. Режим включается двумя флагами в gradle.properties поверх привычного enableAndroidTestCoverage = true:
android.experimental.androidTest.coverage.useOnDeviceAgent=true
android.experimental.reportAggregationSupport=true
Отчёт строит та же задача create<Variant>AndroidTestCoverageReport. Нужны устройство с Android 9 или новее и debuggable-сборка.
⚠️ Цифры не совпадут со старыми отчётами: агент считает инструкции DEX, а не Java-байткода, а классы, которые не загрузились во время тестов, в отчёт не попадают. Пороги покрытия при переходе стоит пересмотреть.
🔗 Документация #Android #AndroidDev #Gradle #Testing

2
🏝 Room 3 зависает на suspend-@Transaction: лечится сменой SQLite-драйвера Разработчик разобрал зависание приложения на Room 3: сплэш висит бесконечно, а краша, ANR и строчки в логах нет. Дамп потоков через kill -3 показал корутину, навсегда вставшую на локе внутри PassthroughConnectionPool в suspend-функции DAO с @Transaction и телом. Почему так: Room спрашивает у драйвера hasConnectionPool. AndroidSQLiteDriver отвечает true, и Room не заводит свой пул: остаётся одно соединение, привязанное к потоку, без таймаута ожидания. Если код транзакции сменит диспетчер, транзакция ждёт сама себя. Исправление этого дедлока заявлено в Room 3.0.2, но у автора зависало именно на 3.0.2, а в 3.0.3 чинили регрессию от этого исправления. Как исправить: передать в билдер BundledSQLiteDriver. Он возвращает false, и Room поднимает собственный пул: в WAL четыре читателя и один писатель, а при долгом ожидании через 30 секунд прилетает SQLiteException вместо тихого зависания. Room тоже стоит обновить до актуальной версии. Room.databaseBuilder<AppDatabase>(context, DB_NAME) .setDriver(BundledSQLiteDriver()) // was AndroidSQLiteDriver() .setJournalMode(JournalMode.WRITE_AHEAD_LOGGING) .build() ⚠️ Что учесть при смене драйвера: • в APK появится своя SQLite: около 620–650 КБ на ABI в сжатом виде, в universal APK все четыре ABI, примерно 2,5 МБ; • соединений станет несколько, Room сам ставит на каждое PRAGMA synchronous (в WAL это NORMAL), а RoomDatabase.Callback.onOpen вызывается один раз на базу, поэтому PRAGMA оттуда применится только к одному соединению. Автор задаёт её в обёртке над драйвером; • в такой обёртке делегируйте inTransaction(), иначе дефолтная реализация бросит NotImplementedError. 🔗 dev.to #Android #Room #Kotlin
2 176
3
🤖 В Android-скиллах для агентов появились ML Kit Agent API, Jetpack Ink и память виджетов Google выпустила v1.0.18 библиотеки Android skills — готовых инструкций, по которым AI-агент работает с конкретными API. Новых скиллов четыре: 👉 mlkit-agent-api — агентные сценарии прямо на устройстве через ML Kit GenAI Agent API на Gemini Nano и AICore 👉 ink-app-builder и ink-custom-brush-builder — рисование от руки на Jetpack Ink в Compose и свои кисти BrushFamily (androidx.ink 1.1.0-alpha03+) 👉 glance-appwidget-updates-and-memory — обновление виджетов на Glance и лимиты памяти на картинки в RemoteViews в Android 17, из-за которых тяжёлые картинки теперь роняют приложение Ещё обновили 15 скиллов, среди них appfunctions, navigation-3, r8-analyzer и jetpack-compose-performance, а jetpack-compose/theming/styles удалили. 🔗 Релиз v1.0.18 #Android #AndroidDev #AI #AgentSkills
2 567
4
⚙️ Styles API в Compose переделывают: документацию временно убрали На Google I/O команда Compose показала Styles, новый способ настраивать внешний вид компонентов. Теперь она сообщила, что по итогам отзывов API станет менее навязчивым: определения визуальных свойств переедут из слоя foundation в слой дизайн-системы, то есть в Material или вашу собственную. Дизайн-система сама решит, какие свойства её компонентов можно стилизовать, а свои свойства можно будет объявлять через stylePropertyOf и styleLocalOf. Пока идёт переделка, с developer.android.com сняли весь раздел про Styles (основы, темизацию, анимации состояний, сравнение с Modifier, рекомендации и ограничения), а также опубликованный ранее скилл для AI-агентов. В Compose 1.13 Styles API остаётся @Experimental. ⚠️ Если вы уже пробовали Styles в коде, API ещё поменяется. Новую форму обещают показать отдельно и собрать по ней отзывы. 🔗 Styles update #Compose #JetpackCompose #Android
2 555
5
🤖 Gemma на 584 МБ без раздувания APK: модель раздаёт Google Play Kevin Desai добавил в своё KMP-приложение PokeCollect ответы на вопросы о коллекции с помощью Gemma 3 1B на LiteRT-LM. Модель весит 584 МБ, и класть её в APK значит отпугнуть пользователя. Поэтому он вынес её в AI pack библиотеки Play for On-Device AI: хранит и раздаёт модель Google Play. Модель живёт в отдельном модуле без кода и приезжает одним из трёх способов: вместе с установкой (install-time), сразу после неё (fast-follow) или по запросу (on-demand). Под капотом Play Asset Delivery. // gemma_pack/build.gradle.kts plugins { id("com.android.ai-pack") } aiPack { packName = "gemma_pack" dynamicDelivery { deliveryType = "fast-follow" } } // app/build.gradle.kts assetPacks += ":gemma_pack" implementation("com.google.android.play:ai-delivery:0.2.0-beta01") В рантайме AiPackManager отдаёт путь к файлу или запускает fetch(), а слушатель сообщает статус. Для загрузок больше 200 МБ по мобильной сети есть статус WAITING_FOR_WIFI. ⚠️ Библиотека в бете и работает только с AAB: нужны AGP 8.8+ и bundletool 1.18+. Лимит — 1,5 ГБ на пак. Для загрузки добавляется foreground service, его придётся задекларировать в Play Console с коротким видео. 🔗 Статья #Android #AndroidDev #OnDeviceAI #GooglePlay #Gemma
3 334
6
🤖 Claude Sonnet 5.5 возглавил Android Bench Google продолжает пополнять Android Bench — свой лидерборд LLM на реальных задач
🤖 Claude Sonnet 5.5 возглавил Android Bench Google продолжает пополнять Android Bench — свой лидерборд LLM на реальных задачах Android-разработки. Теперь туда добавили Claude Sonnet 5.5, Gemini 4 Argon и GPT 6.1 Sol, и у рейтинга сменился лидер. Long-horizon задачи (30 штук: миграции, конвертация приложений, новые фичи): 🥇 Claude Sonnet 5.5 (max) — 40,0%, $1574,9 за прогон 🥈 Claude Opus 5.5 (max) — 37,3%, $1150,3 🥉 GPT 6.1 Sol (max) — 29,3%, $99,5 • GPT 6 Astra (high) — 28,0% • Gemini 4 Argon (high) — 21,3% Sol почти в 16 раз дешевле Sonnet за прогон и примерно в 2,7 раза быстрее (26,6 ч против 70,7 ч). Моделей Grok от SpaceXSI (бывшая xAI), включая флагманскую Grok 4.7, в Android Bench по-прежнему нет. 🔗 Android Bench #Android #AI #Benchmark
3 835
7
🛒 Публикация приложения из России в 2026: опыт с пятью магазинами Российская команда ИИ-репетитора английского Aisha выложила приложение в RuStore, Google Play, Huawei AppGallery и App Store, а в Samsung Galaxy Store так и не попала. Главные проблемы оказались не в модерации, а в документах и приёме оплаты. 👉 RuStore — регистрация ИП через VK и КЭП, одобрили за день, обновления проходят примерно за час. Подписки — через RuStore Pay. 👉 Google Play — D-U-N-S делали около месяца. Play Billing в России приостановлен, но для российских пользователей действует исключение: подписки принимают через RuStore Pay, Google за эти платежи не берёт комиссию. Модераторам схему пришлось объяснять в примечаниях к проверке. Обновления — 2–3 дня. 👉 Huawei AppGallery — для ИП хватило сканов документов, без D-U-N-S, сторонние платежи разрешены. Проверка — от двух дней, чаще около пяти. 👉 App Store — новым российским аккаунтам Paid Applications Agreement сейчас недоступно, поэтому оформить внешнюю ссылку на оплату не удалось. Вышла только бесплатная версия без внешних ссылок и с кнопкой мгновенного удаления аккаунта. 👉 Samsung Galaxy Store — даже для бесплатного приложения нужен статус коммерческого продавца с D-U-N-S и PayPal на домене компании. Заявку отклонили. ⚠️ Сроки проверок — личный опыт одной команды, а не обязательства магазинов. 🔗 Личный опыт публикации в магазинах приложений в России в 2026 году (Хабр) #Android #AndroidDev #RuStore #GooglePlay
3 984
8
🚀 Sentry Android SDK стал на 20–30% быстрее при старте: что поменяли SentryAndroid.init стоит на критическом пути запуска ка
🚀 Sentry Android SDK стал на 20–30% быстрее при старте: что поменяли SentryAndroid.init стоит на критическом пути запуска каждого приложения с Sentry, а таких стартов, по подсчётам компании, около 4,5 млрд в день. За квартал команда сделала больше 40 изменений и сократила инициализацию на 20–30% между версиями 8.43.0 и 8.54.0. Узкие места искали по трейсам Perfetto, в том числе с LLM, а каждый фикс проверяли Macrobenchmark. Приёмы, которые пригодятся и в вашем коде: 👉 Настройки из манифеста — в байткод при сборке: SDK больше не парсит манифест, одно это дало 6,5%. 👉 Свой парсер DSN вместо java.net.URI: было до 6 мс, стало около 1 мкс. 👉 Общие пулы вместо разовых потоков: в ART каждый поток резервирует 1 МБ под стек. Нужны SDK от 8.54.0 и Sentry Android Gradle Plugin от 6.20.0. ⚠️ Цифры сняты на синтетическом демо-приложении, в реальных проектах эффект может отличаться. 🔗 Sentry Blog #Android #AndroidDev #Performance #Sentry
3 785
9
Один и тот же пуш мгновенно приходит на Pixel — и не приходит вообще на Redmi. Разработчик часами копается в FCM, а виноват не он: Xiaomi, Redmi, Poco, Oppo, Realme, Vivo, iQOO и OnePlus добавляют поверх Android свой агрессивный менеджер батареи, который останавливает приложения в фоне. А остановленное приложение пушей не получает. Что делают эти прошивки • Автозапуск выключен по умолчанию (MIUI/HyperOS, ColorOS) — пуш, которому нужен ваш код, не может его запустить. • Смахивание из недавних = Force stop. Android не доставляет сообщения force-stopped приложению, пока его не откроют. • Профили экономии батареи ограничивают фон, иногда через несколько дней без открытия приложения. • Уведомления на экране блокировки и всплывающие выключены — пуш пришёл, но пользователь его не видит. Что можно сделать в приложении • Важное — через notification messages, а не data-only: их показывает система без запуска вашего кода. • High priority — только для того, что пользователь ждёт (подтверждение входа, статус заказа). • Разные каналы для логинов и промо, чтобы отключение одного не глушило другой. • Просите настройку один раз и в нужный момент, а не всем в первый день. • Pull в дополнение к push: при открытии приложения подтягивайте пропущенное — тогда недошедший пуш лишь опоздал, а не потерялся. Для экрана настроек есть стандартные интенты, а для автозапуска у вендоров публичного API нет: // Системный список исключений из оптимизации батареи startActivity(Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS)) // Страница настроек приложения: там на большинстве телефонов Autostart и батарея startActivity(Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", packageName, null))) ⚠️ Google Play разрешает прямой запрос исключения (REQUEST_IGNORE_BATTERY_OPTIMIZATIONS) лишь в немногих случаях — большинству приложений стоит вести пользователя на экран настроек. Как проверить, что дело в прошивке: отправьте одно и то же уведомление на Pixel/Samsung и на Xiaomi, смахнув приложение на обоих. Пришло на первом, но не на втором — это battery saver, и одними изменениями на сервере это не исправить. ⚠️ Названия пунктов меню меняются между версиями прошивок — актуальные инструкции по брендам собраны на dontkillmyapp.com. 🔗 Why push notifications go missing on Xiaomi, Oppo, Vivo and Realme #Android #AndroidDev #FCM #Push #Xiaomi
3 923
10
No text...
1
11
🔐 Утекли ключи удостоверяющего центра eMudhra: обновите OkHttp до 5.5.1 или 4.12.1 Поздно вечером 17 октября Mozilla получила сообщение: закрытые ключи восьми промежуточных сертификатов удостоверяющего центра eMudhra скомпрометированы. С ними можно выпустить поддельный HTTPS-сертификат для чужого сайта, и клиент, который доверяет этим корням, его примет. Firefox заблокировал сертификаты меньше чем за три часа, а 20 октября Mozilla убрала корень из своего хранилища NSS. Приложения на OkHttp уязвимы, пока не обновится список доверенных корней платформы, а на Android и JVM это может занять очень долго. Поэтому Jesse Wilson 20 октября выложил обходной путь, а 22 октября вышли OkHttp 5.5.1 и 4.12.1, которые сами блокируют эти 8 сертификатов. Достаточно поднять версию. Если обновиться сразу нельзя, подключите ForbiddenCertificatesHostnameVerifier из гиста, он работает со всеми поддерживаемыми версиями OkHttp: val safeClient = client.newBuilder() .hostnameVerifier(ForbiddenCertificatesHostnameVerifier()) .build() ⚠️ Первая версия обхода была на Interceptor, но он получает сертификаты слишком поздно, когда секреты уже ушли атакующему. Если вы скопировали её 20 октября, замените на HostnameVerifier. На устройствах с Google Play Services Google уже раздал автоматическое обновление, под угрозой прежде всего JVM и AOSP-устройства. 🔗 Jesse Wilson · Mozilla · Changelog 5.5.1 · 4.12.1 #Android #AndroidDev #OkHttp #Security
4 692
12
🏝 DateParser Kotlin: «купить молоко завтра в 19:00» превращается в дату без сети и API-ключей Пользователь пишет напоминание обычным текстом, а приложению нужно вытащить из него дату, время и сам текст задачи. Обычно для этого зовут облачный NLP-сервис или пишут свои регулярки. DateParser Kotlin делает это офлайн: из Buy milk tomorrow at 7pm получается Buy milk и завтрашние 19:00 в выбранной таймзоне. Библиотека для Kotlin Multiplatform понимает английский и русский: Android, JVM и iOS. Она разбирает даты, время, диапазоны вроде «завтра с 17:30 до 20:00» и повторения вроде «каждые 2 дня». Context и инициализация не нужны. val parser = DateParser() val matches = parser.parse( text = "buy in 5 hours", reference = Instant.parse("2024-02-28T10:15:00Z"), timeZone = TimeZone.UTC ) val instant = matches.single().instant // 2024-02-28T15:15:00Z Неоднозначные даты не угадываются: 03/04/2026 без явного DateOrder.MDY или DMY вернёт пустой результат. Кроме момента времени, DateMatch отдаёт конец диапазона, период повторения и оставшийся текст напоминания. ⚠️ Парсер построен на правилах: произвольный текст за пределами поддерживаемых форм может не распознаться. Android — от API 26, Swift/XCFramework-дистрибутива нет. Версия 0.1.3, репозиторий создан в октябре. 🔗 GitHub · Документация · klibs.io #Kotlin #KMP #Multiplatform #OpenSource
3 578
13
🚀 Предусловия UI-тестов через API — не всегда быстрее: замеры на 400+ Android-тестах Почти каждый UI-тест в Android-приложен
🚀 Предусловия UI-тестов через API — не всегда быстрее: замеры на 400+ Android-тестах Почти каждый UI-тест в Android-приложении финансового сервиса начинался одинаково: шесть экранов логина и около 26 секунд, хотя логин эти тесты не проверяли. Команда проверила на Хабре известный совет «готовьте предусловия через API, а не через UI» на трёх кейсах в сьюте на Kaspresso. Для логина совет сработал: вход через auth-слой приложения занял ~7 секунд вместо ~26, а общее время 418 тестов сократилось на 27%. А переключение тумблера через PATCH оказалось на 29% медленнее трёх тапов: тест сам грузил большой список продуктов, который приложение потом загружало ещё раз. Вывод авторов: выигрыш даёт не API сам по себе, а то, что из теста уходит длинная UI-цепочка, которая не лежит на пути к проверяемому экрану. 🔗 Статья на Хабре #Android #AndroidDev #Testing #Kaspresso
4 304
14
🤖 Виджеты на Android 17: слишком тяжёлые картинки теперь роняют приложение Приложение обновляет виджет с парой крупных фото и падает с IllegalArgumentException: RemoteViews for widget update exceeds maximum bitmap memory usage. Так Android 17 ведёт себя с приложениями на targetSdk 37: если картинки в RemoteViews не влезают в лимит, система отклоняет обновление и бросает исключение. На targetSdk 36 и ниже это пока только предупреждение в логе. Google переписал описание этого изменения и добавил, как считается лимит и как в него уложиться. Лимит — 6 * width * height байт, то есть полтора полноэкранных буфера ARGB_8888. Считаются картинки для всех ориентаций и размеров виджета сразу, поэтому responsive-виджет легко съедает бюджет копиями одного и того же Bitmap. 👉 Размер экрана берите из WindowManager.currentWindowMetrics, а не из displayMetrics: на складных устройствах тот может вернуть размер неактивного дисплея. 👉 Уменьшайте картинки до размеров виджета, а для непрозрачных используйте RGB_565 — это вдвое меньше памяти. 👉 В Glance декодируйте Bitmap один раз в provideGlance до provideContent, иначе для каждого размера создаётся своя копия. URI-картинки в лимит не входят, но лаунчер декодирует их в полном разрешении, так что класть в cacheDir тоже стоит уменьшенную версию. 🔗 Изменения поведения Android 17 · Виджеты на Glance #Android #AndroidDev #Android17 #AppWidgets
4 399
15
🤖 Google объяснил Android-разработчикам, как устроены ИИ-агенты и что писать в AGENTS.md Агент обновляет библиотеку с ломающ
🤖 Google объяснил Android-разработчикам, как устроены ИИ-агенты и что писать в AGENTS.md Агент обновляет библиотеку с ломающими изменениями, а нового API нет в его обучающих данных, и по сотням файлов сыплются ошибки компиляции. С разбора таких ситуаций начинается новый раздел AI tools на developer.android.com: агент — это LLM плюс обвязка с инструкциями, инструментами, навыками и циклом выполнения. Главный практический совет: пишите в AGENTS.md конкретные команды и пути, а не пожелания. Не «убедись, что проект собирается», а ./gradlew assembleDebug; не «бери свежие версии», а «версии из gradle/libs.versions.toml, новые зависимости — только после вопроса». Навыки устаревают, поэтому свежие факты агенту лучше давать через поиск по документации в Android CLI. В квикстарте инструменты подобраны под опыт: новичкам — Google AI Studio, своему агенту вроде Claude Code — Android CLI и skills, для продакшена — Android Studio. 🔗 Как работают агенты · Квикстарт #Android #AndroidDev #AI #AIAgents
4 843
16
🐱 Mac.apk открыл исходники: Android-приложения на Mac без эмулятора и виртуальной машины Чтобы запустить Android-приложение
🐱 Mac.apk открыл исходники: Android-приложения на Mac без эмулятора и виртуальной машины Чтобы запустить Android-приложение на Mac, обычно поднимают эмулятор — целый Android в виртуальной машине. Автор Mac.apk пошёл путём Wine: его программа сама изображает Android поверх macOS. 19 октября код открыли под AGPL-3.0. При первом запуске DEX переводится в Java-байткод и работает на встроенной OpenJDK, 64-битный ARM-код выполняется на чипе Apple как есть, а графика идёт через ANGLE и MoltenVK в Metal. Каждое приложение — отдельное окно с иконкой в Dock. Разработчикам важно: на Mac.apk ваше приложение запускается без настоящих Google Play Services: Play Billing и Play Integrity недоступны, а рекламный SDK Google получает пустой ответ. Если не хотите видеть там своё приложение, автор по запросу внесёт его в список блокировки. ⚠️ Это альфа-версия: нужны Apple Silicon и macOS 26.4+, часть приложений пока не запускается. 🔗 GitHub · Как это устроено · Для разработчиков #Android #AndroidDev #macOS #OpenSource
5 019
17
👨‍💻 Ты оптимизировал весь код, кроме собственного рабочего места? Монитор — 4K. Клавиатура — механическая. Компьютер — звер
👨‍💻 Ты оптимизировал весь код, кроме собственного рабочего места? Монитор — 4K. Клавиатура — механическая. Компьютер — зверь. Кресло — работает на устаревшей прошивке с 2018 года. 💀 Кажется, пора выпускать обновление! У «Эргостол» стартовала акция «Октябрь — месяц эргономики»: с 23 октября по 1 ноября скидки до -15% на товары акции. 🔥 Скидки суммируются с промокодом -10% ANDROID10 действует на сайте Эргостол и на Ozon! Как насчёт апгрейда кресла? 🪑 🎥Смотрите обзор кресла Экзо Флекс: https://abdev.by/EiMt 👉 Выбрать себе обновления можно: тут #реклама
4 585
18
🚀 Grab включил R8 на 10 млн строк кода и избавился от всплесков ANR после релизов «Каждый еженедельный релиз — всплеск ANR»,
🚀 Grab включил R8 на 10 млн строк кода и избавился от всплесков ANR после релизов «Каждый еженедельный релиз — всплеск ANR», — так описывают жизнь команды Grab, суперприложения из Юго-Восточной Азии с 10-летней кодовой базой. Холодный старт тормозило чтение множества DEX-файлов, а Cloud Profiles из Google Play не покрывали их критичные пути вроде сборки графа Dagger. Сначала команда перешла на proguard-android-optimize.txt и добавила Baseline и Startup Profiles, через девять месяцев — на R8 full mode. Вместо широких исключений нашли конкретные классы, к которым обращаются через рефлексию и динамические прокси, и написали для них точечные keep-правила. Оценки оптимизации R8 теперь отслеживают в CI, а новые keep-правила планируют пропускать только с обоснованием. Итог: ANR меньше на 32%, холодный старт быстрее на 35%. Недавно писал, что Google взялся за R8 всерьёз, — вот как это выглядит на большом проекте. 🔗 Кейс Grab #Android #AndroidDev #R8 #Performance
4 991
19
🤖 DataStore научился шифровать данные из коробки: замена EncryptedSharedPreferences дошла до RC В 2025 году Google объявил deprecated всю библиотеку security-crypto вместе с EncryptedSharedPreferences и предложил работать с Android Keystore напрямую. Готовой замены «подключил и забыл» не было. Теперь она есть: в DataStore 1.3 появился артефакт datastore-tink, а 12 октября вышел 1.3.0-rc01, то есть API уже стабилен. Шифрование подключается обёрткой над вашим сериализатором: AeadSerializer шифрует данные через Tink (AES-256-GCM), а ключ защищён Android Keystore. // keysetHandle создаётся через AndroidKeysetManager val aeadSerializer = AeadSerializer( aead = keysetHandle.getPrimitive( RegistryConfiguration.get(), Aead::class.java ), wrappedSerializer = SettingsSerializer, // уникальное имя защищает от подмены шифротекста associatedData = "settings.json".encodeToByteArray(), ) val dataStore = dataStore( fileName = "settings.json", serializer = aeadSerializer, scope = scope, ) Работает на Android и JVM. Ошибки расшифровки приходят как CorruptionException, так что их ловит обычный CorruptionHandler. Заодно в 1.3 появился DataStore.Builder, и Google советует переходить на него с DataStoreFactory. 🔗 Release notes DataStore · Разбор на ProAndroidDev #Android #AndroidDev #DataStore #Security
5 377
20
🤖 MediaPipe LLM Inference больше не развивают: Google советует переходить на LiteRT-LM Google сменила курс по on-device LLM одной плашкой в документации Google AI Edge: LLM Inference API из MediaPipe для Android, iOS и веба теперь только поддерживают, а новые возможности и оптимизации делают в LiteRT-LM. Когда это произошло, Google не пишет, но затишье видно и по релизам — последняя версия tasks-genai вышла на Google Maven ещё в конце апреля. Если вы через MediaPipe встроили в приложение языковую модель, которая работает прямо на телефоне, она продолжит работать, но всё новое теперь появляется только в LiteRT-LM, так что переезд стоит спланировать заранее. LiteRT-LM — рантайм Google для языковых моделей поверх LiteRT. У него свой Kotlin API для Android и JVM с ускорением на GPU и NPU, мультимодальностью и вызовом инструментов. Модели нужны в формате .litertlm, готовые лежат в LiteRT Community на Hugging Face. Актуальная версия — litertlm-android:0.18.0, ещё до 1.0. Базовый сценарий из документации: val engine = Engine(EngineConfig(modelPath = modelPath, backend = Backend.GPU())) engine.initialize() // до ~10 секунд, не на главном потоке engine.createConversation().use { conversation -> conversation.sendMessageAsync("Привет!").collect { print(it) } } Для GPU в манифест нужно добавить uses-native-library для libOpenCL.so и libvndksupport.so с required="false". ⚠️ В AAR LiteRT-LM 0.18.0 нативные библиотеки есть только для arm64-v8a и x86_64. На 32-битных ARM-устройствах загрузка упадёт с UnsatisfiedLinkError, поэтому проверяйте Build.SUPPORTED_ABIS заранее — на это наткнулся Charles Hartmann. 🔗 MediaPipe LLM Inference · LiteRT-LM для Android · dev.to #Android #AndroidDev #AI #LiteRT
4 958