🤖 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.
Модель живёт в отдельном модуле без кода и приезжает одним из трёх способов: вместе с установкой (
В рантайме
🔗 Статья
#Android #AndroidDev #OnDeviceAI #GooglePlay #Gemma
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
❤17👍6
Forwarded from Compose Broadcast
На 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥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 и свои кисти
👉 glance-appwidget-updates-and-memory — обновление виджетов на Glance и лимиты памяти на картинки в
Ещё обновили 15 скиллов, среди них appfunctions, navigation-3, r8-analyzer и jetpack-compose-performance, а
🔗 Релиз v1.0.18
#Android #AndroidDev #AI #AgentSkills
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
👍9
Разработчик разобрал зависание приложения на 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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3
Чтобы посчитать покрытие кода инструментальными тестами, 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4
🚀 Фоновая работа в отдельном процессе: новый раздел гайда Google по памяти
В гайде по памяти на developer.android.com появился раздел о том, как держать фоновую работу в лёгком процессе. Android управляет памятью на уровне процесса, а не компонента. Если foreground service (сервис с уведомлением) с загрузкой или синхронизацией живёт в одном процессе с UI, весь процесс сохраняет высокий приоритет, и в памяти остаются остановленные Activity, дерево View и GPU-контексты.
В Android 17 это бьёт по самому приложению: пока у него нет видимого UI, действует более строгий общий лимит памяти на все его процессы. При превышении система притормаживает приложение, а потом может его завершить. Google советует вынести сервис в
Второй новый раздел объясняет, как вернуть страницы памяти системе через
🔗 Lean process · Return memory pages
#Android #AndroidDev #Performance
В гайде по памяти на developer.android.com появился раздел о том, как держать фоновую работу в лёгком процессе. Android управляет памятью на уровне процесса, а не компонента. Если foreground service (сервис с уведомлением) с загрузкой или синхронизацией живёт в одном процессе с UI, весь процесс сохраняет высокий приоритет, и в памяти остаются остановленные Activity, дерево View и GPU-контексты.
В Android 17 это бьёт по самому приложению: пока у него нет видимого UI, действует более строгий общий лимит памяти на все его процессы. При превышении система притормаживает приложение, а потом может его завершить. Google советует вынести сервис в
android:process=":bg". Тогда UI-процесс уходит в кэш, где система его замораживает и сжимает, а воркер работает с минимумом памяти. С Android 17 QPR2 такому процессу можно задать собственный бюджет (нужен AGP 9.5.0 или новее):<processes>
<process android:process=":bg">
<memory-budget android:maxMb="32" />
</process>
</processes>
⚠️Application.onCreateвызывается в каждом процессе. ПроверяйтеApplication.getProcessName()и не инициализируйте в:bgUI-библиотеки и нативные движки.
Второй новый раздел объясняет, как вернуть страницы памяти системе через
madvise и posix_fadvise, если у вас свои нативные аллокаторы или большие ассеты.🔗 Lean process · Return memory pages
#Android #AndroidDev #Performance
👍28🔥4❤1
В Android 17 QPR2 появился MultisensoryManager, API для Multisensory Design System (MSDS). Это набор готовых токенов обратной связи: звук и вибрация, которые система синхронизирует между собой и подстраивает под возможности конкретного устройства. Подбирать свои паттерны вибрации для переключателей и жестов больше не нужно.
Токены покрывают два случая: отклик на жесты, когда пользователь двигает элементы UI, и смысловой отклик на смену состояния, выбор или прогресс. Проигрывается токен одним вызовом:
val manager : MultisensoryManager= context.getSystemService()
Switch(checked = checked, onCheckedChange = { isChecked ->
checked = isChecked
manager?.playToken(
if (isChecked) MultisensoryManager.TOKEN_SWITCH_ON
else MultisensoryManager.TOKEN_SWITCH_OFF
)
})
Google рекомендует проигрывать отклик в момент, когда пользователь видит результат действия, чтобы анимация, звук и вибрация совпали. Вызов закрывается проверкой
Build.VERSION_CODES_FULL.CINNAMON_BUN_2.🔗 Документация
#Android #AndroidDev #Haptics
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤1
🔥 Сторонние магазины приложений в России и Беларуси смогут ставить приложения в один тап
Google открыла запись в программу Registered App Stores. Зарегистрированный магазин устанавливает и обновляет приложения без лишних системных подтверждений. Участие добровольное, остальные магазины работают как раньше. Новые возможности включатся 1 декабря 2026 года на устройствах с Android 17 QPR2 и новее.
👉 Что получает магазин: установку в один тап, автоматическое разрешение на установку вместо ручного включения
👉 Где работает: в списке стран есть Россия, Беларусь, Казахстан и Узбекистан, а США и Евросоюза пока нет. Доступность зависит от страны аккаунта пользователя
👉 Что нужно магазину: аккаунт организации в Android Developer Console, пройденная верификация разработчика, ежегодный взнос и передача всего каталога в Google для проверки на вредоносное ПО
🔗 Android Developers · Android Authority
#Android #AndroidDev #GooglePlay
Google открыла запись в программу Registered App Stores. Зарегистрированный магазин устанавливает и обновляет приложения без лишних системных подтверждений. Участие добровольное, остальные магазины работают как раньше. Новые возможности включатся 1 декабря 2026 года на устройствах с Android 17 QPR2 и новее.
👉 Что получает магазин: установку в один тап, автоматическое разрешение на установку вместо ручного включения
REQUEST_INSTALL_PACKAGES в настройках и обновления приложений в фоне👉 Где работает: в списке стран есть Россия, Беларусь, Казахстан и Узбекистан, а США и Евросоюза пока нет. Доступность зависит от страны аккаунта пользователя
👉 Что нужно магазину: аккаунт организации в Android Developer Console, пройденная верификация разработчика, ежегодный взнос и передача всего каталога в Google для проверки на вредоносное ПО
🔗 Android Developers · Android Authority
#Android #AndroidDev #GooglePlay
🔥27👍9
Google выпустила Android Studio Rabbit 2 к Android Dev Summit. Главное в релизе — Bring Your Own Agent: в окне агента можно выбрать Claude Agent, Codex, Junie, Antigravity или любой из 40+ агентов с поддержкой ACP (Agent Client Protocol, открытый протокол подключения агентов к редакторам). Агенту доступны эмулятор, сборка, Logcat и Android skills.
👉 Change Review: агент проверяет свои правки, незакоммиченный код или коммиты из Git log, предлагает исправления и группирует дифф по смыслу, а не по алфавиту файлов
👉 Менеджер скиллов: Android skills и скиллы Firebase ищутся и ставятся в IDE, а в чате вызываются через @
👉 XR-эмуляторы для очков стали стабильными, окружение можно задать своим 360° фото или видео с камеры
Агента выбирают в Settings › Tools › AI › Agents.
🔗 Android Developers Blog
#Android #AndroidStudio #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤1
На Android Dev Summit Google объявила, что со следующего года Play будет смотреть, как приложения и игры работают на складных смартфонах. Хорошо адаптированным обещают больше возможностей показать себя в магазине. Конкретные требования Google опубликует до конца года.
👉 Чем готовиться: гайдлайны качества адаптивных приложений, для игр — отдельные
👉 Compose adaptive skill для агентов научился позам складных: экраны камеры и медиа он переводит в раскладку для полусложенного телефона на столе
👉 Под Googlebook тот же скилл проверяет UI и добавляет горячие клавиши, курсоры, hover-состояния и подсказки
Будут ли штрафы в поиске для неадаптированных приложений, Google пока не сказала.
🔗 Android Developers Blog · Android Authority
#Android #GooglePlay #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤3
Forwarded from AI Dev Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
Google выпустила плагин Android CLI для Claude Code и Codex. Он даёт агенту инструменты и инструкции для Android: создать проект, управлять эмуляторами, смотреть живую иерархию UI, запускать Journeys, ставить официальные Android skills и искать по базе знаний Android.
claude plugin marketplace add android/android-cli-plugin
claude plugin install android-cli@android-cli-plugin
👉 Превью Compose без эмулятора: новая команда рендерит превью, и агент сам проверяет UI. По тестам Google, UI-задачи так решались на 77% быстрее и с расходом токенов до 3 раз меньше
👉 LeakCanary в CLI: дампы памяти разбираются на компьютере, а не на устройстве. В A/B-тесте Claude Opus 5.5 на 45 сценариях справился за 46 минут вместо 88
На видео Claude Code гоняет сценарии на нескольких эмуляторах параллельно и чинит найденные утечки.
🔗 Android Developers Blog
#AI #ClaudeCode #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥41❤1
Forwarded from Compose Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
Prevue — плагин для Claude Code и Codex. Он показывает все
@Preview из файла в браузере без Android Studio и перерисовывает их примерно через секунду после сохранения. Агент видит картинку, сверяет её с макетом или скриншотом и правит код сам.claude plugin marketplace add https://github.com/kakao/prevue.git
claude plugin install prevue@prevue
👉 Клик вместо объяснений: нажали на элемент, и агент получил файл и строку
👉 Интерактивный режим: нажатия, анимации, разные устройства, включая складные
👉 Легче IDE: на nowinandroid 1,4 ГБ памяти против 8,1 ГБ у Android Studio, можно держать по копии на каждый worktree
В отличие от Spyglass, Prevue работает с обычными Android-превью.
⚠️ Нужны JDK 21+ и macOS, замеры от авторов.
🔗 GitHub
#Compose #AI #ClaudeCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍3
29 октября Google опубликовала новые правила Play для разрешений с доступом к чувствительным данным. Логика та же, что в апрельском обновлении политик: если задачу решает системный picker или intent, используйте его. Если без разрешения никак, заполните декларацию в Play Console и объясните, почему без него не работает основная функция приложения.
👉 Локальная сеть, с 25 августа 2027. Приложения с targetSdk 37+ (Android 17) могут запрашивать
ACCESS_LOCAL_NETWORK, только когда device pickers вроде NsdManager не подходят. Каждому такому приложению нужна декларация в Play Console👉 Редактирование контактов, с 25 августа 2027. Для добавления и правки контактов есть intents ACTION_INSERT и ACTION_EDIT. Если их не хватает и нужен
MANAGE_CONTACTS, приложениям с targetSdk 38+ (Android 18) нужна декларация👉 Геолокация, с 27 января 2027. С targetSdk 37+ разовые запросы точной геолокации идут через системную кнопку локации (флаг
onlyForLocationButton в манифесте). ACCESS_FINE_LOCATION требует декларации: надо объяснить, почему не хватает кнопки или ACCESS_COARSE_LOCATION🔗 Анонс Google Play · Предстоящие изменения политики
#GooglePlay #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥7❤4
Google обновила в Android Studio данные о версиях Android, впервые с декабря 2025 (прошлый срез). Цифры на 1 октября, по устройствам, которые заходили в Google Play за 7 дней. Studio показывает только накопительную долю, доли версий по ней посчитал heise.
👉 Android 16 (API 36): 25,4%. Теперь это самая распространённая версия, в декабре было 7,5%
👉 Android 17 (API 37): 1%, хотя вышел в середине июня. Срок от релиза до среза в этом году короче, чем у Android 16
👉 Для выбора minSdk: API 34+ стоит на 56,4% устройств, API 30+ на 88,3%, API 29+ на 94%. Android 11 до сих пор держит 10,5%
🔗 heise · Android Authority
#Android #AndroidDev #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
В гайде Google по производительности SQLite раньше были общие советы про индексы и WAL. Теперь там есть разделы про память соединений, кэш скомпилированных запросов и разбор запросов в Perfetto. Базовые советы для Room мы уже разбирали, а про зависание Room 3 из-за SQLite-драйвера писали здесь.
👉 WAL включайте через фреймворк, а не через
PRAGMA journal_mode=WAL. Только тогда Android открывает пул соединений, чтобы чтение шло параллельно с записью, и ставит синхронный режим NORMAL. После ручного PRAGMA у базы одно соединение, и каждый коммит делает fsync. Room включает WAL сам на всех устройствах, кроме low-RAM.👉 Один
SQLiteOpenHelper или RoomDatabase на файл. У каждого экземпляра свои кэши. В бенчмарке Google объединение двух хелперов на один файл почти вдвое сократило page cache и больше чем вдвое снизило p95 задержки запросов. Дубли видно в adb shell dumpsys dbinfo <package>: один путь под несколькими Connection pool for.👉 Кэш скомпилированных запросов вмещает 25 штук. Если в горячих путях запросов больше, SQLite компилирует их заново. Сначала уберите склейку SQL из строк, потом поднимите лимит до 100:
override fun onConfigure(db: SQLiteDatabase) {
db.setMaxSqlCacheSize(SQLiteDatabase.MAX_SQL_CACHE_SIZE)
}Ещё в гайде есть готовые PerfettoSQL-запросы: самые частые операции, запросы дольше 1 мс на главном потоке и записи вне транзакций.
⚠️ Редко используемую базу лучше закрывать: открытая Room-база в простое держит около 678 КБ page cache и 5 файловых дескрипторов. Но базу, к которой вы ходите каждые несколько секунд, не закрывайте, иначе при каждом открытии кэши собираются заново.
🔗 Best practices for SQLite performance
#Android #AndroidDev #SQLite
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤2
🚀 Какой бюджет памяти поставить приложению на Android 17: Google описал, как найти его замером
С Android 17 QPR2 приложение может объявить в манифесте
Искать нужно «колено»: самый низкий бюджет, при котором система выкидывает только ненужное (кэши картинок с прошлых экранов, буферы старта, однажды прочитанные файлы). Ниже колена приложение начинает подтягивать обратно свои же страницы. Это видно по счётчикам
👉 Замеряйте release-сборку с R8 на Android 17 QPR2 или новее, на сценарии в 30–60 секунд через Macrobenchmark или UI Automator. Отдельно для foreground, perceptible и background: простаивающее приложение ничего не покажет.
👉 Бюджет меняется без пересборки:
👉 Вариант проходит, если процесс выжил, refault почти не выросли, CPU прибавил не больше 5%, доля janky-кадров не больше 1 п.п., а P95 кадра не больше 3 мс.
🔗 Set app memory budgets
#Android #AndroidDev #Android17
С Android 17 QPR2 приложение может объявить в манифесте
<memory-budget android:maxMb="...">. Если приложение его превышает, система не убивает процесс, а выгружает холодные страницы и сжимает неактивную кучу в zRAM. Мы уже писали про системные лимиты памяти и бюджет для фонового процесса, но было неясно, какое число ставить. Теперь в гайде есть раздел о том, как подобрать его замером.Искать нужно «колено»: самый низкий бюджет, при котором система выкидывает только ненужное (кэши картинок с прошлых экранов, буферы старта, однажды прочитанные файлы). Ниже колена приложение начинает подтягивать обратно свои же страницы. Это видно по счётчикам
workingset_refault_* в memory.stat, а потом и по джанку.👉 Замеряйте release-сборку с R8 на Android 17 QPR2 или новее, на сценарии в 30–60 секунд через Macrobenchmark или UI Automator. Отдельно для foreground, perceptible и background: простаивающее приложение ничего не покажет.
👉 Бюджет меняется без пересборки:
adb shell am memory-limiter manual <PID> 120MB, а none вместо числа его снимает. Начните с пика без бюджета и снижайте по 10–15 МБ, каждый вариант гоняйте минимум трижды.👉 Вариант проходит, если процесс выжил, refault почти не выросли, CPU прибавил не больше 5%, доля janky-кадров не больше 1 п.п., а P95 кадра не больше 3 мс.
⚠️ Ручной лимит через am memory-limiter заодно выставляет жёсткий memory.max, поэтому слишком низкое значение может убить процесс. Такой вариант считайте провальным.
🔗 Set app memory budgets
#Android #AndroidDev #Android17
❤6👍5🔥2
🤖 SMS of Death: одно скрытое SMS роняет звонки на Android, исправление уже в патчах
Исследователь Марк Блащик опубликовал демо уязвимости в обработке SMS на Android. Специальное сообщение не появляется во входящих, но роняет телефонный сервис и обрывает текущий звонок, в том числе в экстренные службы. Уязвимый код появился в Android 12, атаку повторили на Pixel и Galaxy.
👉 Система снова и снова пытается разобрать то же сообщение. По словам автора, около 20 таких SMS могут отправить телефон в бутлуп
👉 Ошибка в разборе WAP push PDU. В фиксе
👉 Уязвимость получила номер CVE-2026-58882 и уровень Critical. Google сделала фикс 15 июня, по словам GrapheneOS он попал в июльские security previews, а в публичный бюллетень войдёт в ноябре
Автор сообщил Google о проблеме 5 мая, но, по его словам, ему несколько раз ответили, что это не уязвимость.
🔗 Android Authority · GrapheneOS
#Android #AndroidDev #Security
Исследователь Марк Блащик опубликовал демо уязвимости в обработке SMS на Android. Специальное сообщение не появляется во входящих, но роняет телефонный сервис и обрывает текущий звонок, в том числе в экстренные службы. Уязвимый код появился в Android 12, атаку повторили на Pixel и Galaxy.
👉 Система снова и снова пытается разобрать то же сообщение. По словам автора, около 20 таких SMS могут отправить телефон в бутлуп
👉 Ошибка в разборе WAP push PDU. В фиксе
WapPushOverSms и InboundSmsHandler ловят RuntimeException и удаляют «ядовитое» сообщение из базы👉 Уязвимость получила номер CVE-2026-58882 и уровень Critical. Google сделала фикс 15 июня, по словам GrapheneOS он попал в июльские security previews, а в публичный бюллетень войдёт в ноябре
Автор сообщил Google о проблеме 5 мая, но, по его словам, ему несколько раз ответили, что это не уязвимость.
🔗 Android Authority · GrapheneOS
#Android #AndroidDev #Security
👍17
Forwarded from Compose Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
Haze — библиотека для blur и эффекта стекла в Compose и Compose Multiplatform. Glass появился экспериментальным в версии 2.0, а про backdrop blur в Android 17 QPR2 мы писали на прошлой неделе.
👉
haze-glass и haze-glass-material3 больше не требуют opt-in ExperimentalHazeApi. Часть API из 2.0.x переименовали.👉
hazeGlassContainer ставится на родителя, например на Row с кнопками. Дочерние hazeGlass ближе mergeDistance сливаются в одну форму, а появление и исчезновение кнопок Haze анимирует сам.👉 Стиль создаётся один раз через
remember и может читать анимированное значение, например радиус из animateDpAsState, без рекомпозиции экрана. На Pixel 8a Glass в 2.1 занимает примерно на 7% меньше видеопамяти, чем в 2.0.1.implementation("dev.chrisbanes.haze:haze-glass:2.1.0")🔗 Анонс Haze 2.1
#Compose #ComposeMultiplatform #Haze
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30❤1
Quick Share SDK: приложения на Android и iOS смогут передавать файлы без системного шеринга
На Android Dev Summit Google анонсировала Quick Share SDK. Он выйдет в первой половине 2027 года сразу для Android и iOS. С ним приложение встраивает к себе передачу файлов между устройствами напрямую и Tap to Share, и пользователю больше не нужно открывать меню «Поделиться» и полноэкранный Quick Share.
Внутри приложения отправка открывается нижней панелью с превью файлов. Google обещает сквозное шифрование, низкую задержку и максимальную скорость передачи, файлы без сжатия и работу без интернета. Свою инфраструктуру для этого держать не придётся.
🔗 Доклад с ADS · 9to5Google
#Android #AndroidDev #QuickShare
На Android Dev Summit Google анонсировала Quick Share SDK. Он выйдет в первой половине 2027 года сразу для Android и iOS. С ним приложение встраивает к себе передачу файлов между устройствами напрямую и Tap to Share, и пользователю больше не нужно открывать меню «Поделиться» и полноэкранный Quick Share.
Внутри приложения отправка открывается нижней панелью с превью файлов. Google обещает сквозное шифрование, низкую задержку и максимальную скорость передачи, файлы без сжатия и работу без интернета. Свою инфраструктуру для этого держать не придётся.
🔗 Доклад с ADS · 9to5Google
#Android #AndroidDev #QuickShare
❤29👍7
Через бэкдор XCPE в ботнет попали больше 1,3 млн сертифицированных Android TV-приставок. Google Threat Intelligence Group считает, что его намеренно разработала Videostrong, OEM- и ODM-производитель Android-устройств. Доступ к приставкам компания продавала партнёрам, а те грузили модули для рекламного фрода, резидентных прокси и новой малвари.
👉
x.cpe (в части сборок com.oemservice) работает с правами android.uid.system и после удаления восстанавливается из раздела /oem/ при перезагрузке.👉 Сертификацию он проходил, потому что вредоносный код подгружался уже после первого запуска.
Google через суд закрыла домены ботнета и C2 больше десятка семейств малвари. По её оценке, это отрезает ещё минимум 10 млн устройств. Videostrong больше не сможет выпускать сертифицированные устройства, а проверку прошивок Android TV Google ужесточает.
🔗 Разбор Google Threat Intelligence
#Android #AndroidTV #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍9
Самый лучший момент, чтобы прокачаться в нейросетях
Я сам уже 8 месяцев пишу код и решаю много задач через ИИ в разных форматах, и за этим будущее! Можно рассказать вам, как я это делаю, но это всё равно что теоретически учить вас ездить на велосипеде. Меньше разговоров — садись и едь! Очень хороший способ для этого — формат челленджа!
AI Advent Challenge — это формат, где вы изучаете работу с ИИ от и до, а также то, как добиваться результата с разными моделями (не только фронтир).
Каждую неделю вам даётся теория и задания, которые нужно сдавать в конце недели. На мой взгляд — это самый лучший подход, чтобы изучить ИИ на практике в разных сферах.
Вы получаете сообщество единомышленников, пинок под зад в виде дедлайна сдачи заданий и соревнование с другими участниками!
Вы изучите все что надо знать для практического использования ИИ в реальном проде:
👉 Лучшие практики промптинга
👉 Что такое агент, как с ними работать и создавать своих
👉 Расширение возможностей агентов
👉 Как строить RAG: собственную базу знаний для агента
👉 Локальные ИИ: что могут, как используются и какие задачи можно им делегировать
👉 Автоматизация процессов с интеграцией ИИ на разных стадиях
Ваш шанс запрыгнуть сегодня, получить скидку — вот вам промокод на скидку —
Я сам уже 8 месяцев пишу код и решаю много задач через ИИ в разных форматах, и за этим будущее! Можно рассказать вам, как я это делаю, но это всё равно что теоретически учить вас ездить на велосипеде. Меньше разговоров — садись и едь! Очень хороший способ для этого — формат челленджа!
Если вы сейчас в поиске работы, то самый лучший шанс получить преимущество — прокачать востребованные навыки и вложиться в собственное развитие!
AI Advent Challenge — это формат, где вы изучаете работу с ИИ от и до, а также то, как добиваться результата с разными моделями (не только фронтир).
Каждую неделю вам даётся теория и задания, которые нужно сдавать в конце недели. На мой взгляд — это самый лучший подход, чтобы изучить ИИ на практике в разных сферах.
Вы получаете сообщество единомышленников, пинок под зад в виде дедлайна сдачи заданий и соревнование с другими участниками!
Вы изучите все что надо знать для практического использования ИИ в реальном проде:
👉 Лучшие практики промптинга
👉 Что такое агент, как с ними работать и создавать своих
👉 Расширение возможностей агентов
👉 Как строить RAG: собственную базу знаний для агента
👉 Локальные ИИ: что могут, как используются и какие задачи можно им делегировать
👉 Автоматизация процессов с интеграцией ИИ на разных стадиях
Ваш шанс запрыгнуть сегодня, получить скидку — вот вам промокод на скидку —
ABKR10! Подробности и регистрация на сайте👎2