Android Broadcast
14.6K subscribers
3.8K photos
391 videos
11 files
6.26K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
🤖 Gradle-плагин, который сам защищает APK от рута, хукинга и клонирования

Hydra — это RASP-плагин для Android: подключаешь одной строкой в build.gradle.kts, и на выходе assembleRelease APK несёт обфусцированное нативное ядро с защитой.

plugins {
id("com.android.application")
id("com.github.iamjosephmj.hydra") version "1.9.0"
}


Что проверяет на старте процесса: рут-доступ, Frida/hooking-инструменты, клонирование через virtual spaces (Parallel Space и похожие), эмуляторы, целостность APK. Нашёл критичное — завершает процесс. Без advisory-режима, сразу kill.

secrets {} в конфиге шифрует строки при сборке, в classes.dex попадает только цифертекст, расшифровка только на чистом устройстве:

val url = withContext(Dispatchers.IO) { Hydra.secret("apiUrl") }


Всё on-device, без сети, без телеметрии. INTERNET permission не объявляется вообще.

⚠️ Ядро libdicore.so закрыто и обфусцировано — проверить что именно кладётся в APK нельзя. Для финтех-продакшна это принципиальный вопрос. Kill-by-default сломает эмуляторы в QA — тестировать только на реальных чистых устройствах. QUERY_ALL_PACKAGES потребует декларации в Play Console.

В продакшн только после того, как понял, что именно ты кладёшь в свой APK.

🐱 GitHub

#Android #AndroidDev #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👎20👍1752
‼️ Каждый год 31 августа наступает дедлайн по повышению targetSdk. В этом году дедлайн потребует минимум 36 (Android 16), и это не просто цифра в Gradle-скриптах!

Чуть больше двух месяцев до дедлайна Google Play. С 1 сентября новые публикации и обновления должны таргетировать Android 16 (API 36). Пропустить срок — приложение пропадёт из выдачи для новых пользователей на устройствах с Android новее вашего текущего таргета.

Главная ловушка: переход на targetSdk = 36 включает breaking changes, которые начинают работать сразу после сборки. Что поменяется после смены цифры:

👉 onBackPressed() больше не вызывается. На Android 16 его переопределение игнорируется. Нужен OnBackPressedDispatcher или OnBackInvokedCallback.

👉 Native .so и 16KB page size. Если в приложении или транзитивных зависимостях есть нативный код — нужна проверка совместимости. NDK 27+ и useLegacyPackaging = false. Без этого возможны краши на части устройств.

👉 USE_FULL_SCREEN_INTENT требует явного разрешения. Звонки, будильники, доставка — всё, что показывает уведомления поверх экрана блокировки, перестанет работать без декларации в манифесте.

👉 Health permissions. BODY_SENSORS и BODY_SENSORS_BACKGROUND заменяются на гранулярные android.permission.health.*READ_HEART_RATE, READ_OXYGEN_SATURATION и т.д.

Тестировать breaking changes можно уже сейчас, не повышая targetSdk, через compat framework:

adb shell am compat enable-all com.yourapp


Или точечно по конкретному флагу — удобнее разбирать изменения по одному. Подробнее читайте в документации.

#Android #AndroidDev #Android16
👍586👎5
🛒 Google Play делит комиссию на две части и разрешает сторонние системы платежей

С 30 июня в США, EEA и UK заработает новая модель. Вместо единого процента: service fee (берётся всегда) и billing fee (+5% только при оплате через Google Play Billing).

Ставки ещё зависят от того, "новый" или "старый" пользователь — поставил приложение до или после даты запуска новой модели в его регионе.

👉 Подписки (recurring): 10% service fee для всех. Через Play Billing итого 15%, через альтернативный биллинг — 10%.
👉 Первый $1M/год: 10% service fee на любые транзакции, включая existing installs.
👉 Разовые покупки, new installs, стандарт: 20% + 5% billing = 25%.
👉 Разовые покупки, existing installs, стандарт: 25% + 5% billing = 30%. Те же цифры, что были до.

Для existing installs есть один выход: если переводишь пользователя на свой сайт (external web link), billing fee нет — получается 20% вместо 30%.

По сути Google разгрузил будущий трафик, а существующую базу оставил на старых ставках. Снижение на разовые покупки по-настоящему заработает только по мере переустановки — растянется на годы.

Для команд с оборотом до $1M всё ровно лучше: 10% service fee вне зависимости от типа транзакции и статуса инсталла.

🔗 Источник - Android Dev блог

#Android #GooglePlay #Монетизация
Please open Telegram to view this post
VIEW IN TELEGRAM
12👎6
🐱 Poseidon: посмотри, куда реально ходят твои сторонние SDK

Подключаешь аналитику, рекламный или нативный SDK и приложение сразу получает разрешение INTERNET. Android тут всё или ничего: один permission, весь процесс. Куда ходит каждая библиотека внутри отследить из коробки нельзя.

Poseidon даёт allowlist в манифесте:

<poseidon mode="monitor">
<!-- или enforce, если хочешь блокировать -->
<allow host="api.mybackend.com"/>
<allow host="*.cdn.example.com"/>
</poseidon>


Работает на трёх уровнях: JVM HTTP-клиенты (OkHttp, Volley, HttpURLConnection), нативный C/C++, Go и raw-syscall через seccomp. В Logcat видишь решение по каждому запросу каждой библиотеки отдельно.

monitor — самый полезный режим для начала: просто смотришь, куда ходят все твои SDK, ничего не блокируешь.

#Android #Security #SDK
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51👎5
🤖 Samsung убивает процесс во время Custom Tab, даже когда Google обещал защиту через KeepAliveService

Команда Android в Банки.ру полторы недели дебажила Seamless-авторизацию (вход по номеру через HTTP Header Enrichment): на iOS всё стабильно, на Android соединения рвались случайным образом. Логи врали, таймаут без причины, снифать мобильный трафик оператора нельзя, а сам оператор банил номер за десятки попыток авторизации подряд.

Причина не в бэкенде и не в DNS. Когда открывается Custom Tab для SSO, Activity приложения уходит в onPause() → onStop(). По документации Chrome, браузер должен поднимать process importance приложения через bound KeepAliveService, и процесс не попадает под сетевые ограничения. Но проприетарные слои энергосбережения Samsung и Xiaomi этот механизм игнорируют и убивают процесс по таймеру, не глядя на bound services. У Huawei логика другая — он смотрит на реальный сетевой трафик и не трогает активный процесс, поэтому там всё работало стабильно.

Фикс — ForegroundService с типом shortService:

override fun onCreate() {
super.onCreate()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
startForeground(
NOTIFICATION_ID,
createNotification(),
ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE,
)
} else {
startForeground(NOTIFICATION_ID, createNotification())
}
}

`shortService доступен с Android 14 (лимит ~3 минуты, для 10–15 секунд поллинга с запасом), на более старых версиях работает как обычный ForegroundService. Процесс получает importance PERCEPTIBLE_APP_ADJ, и даже Samsung не трогает foreground service на One UI 6+.

‼️ ВАЖНО: сервис стартует и работает, даже если пользователь запретил приложению уведомления —
POST_NOTIFICATIONS` для запуска foreground service не требуется, просто плашка не появится в шторке.

Хороший повод лишний раз не доверять только официальной доке по process lifecycle и тестировать не на одном Pixel, а хотя бы на паре вендоров с разной агрессией энергосбережения.

🔗 Полная статья — там же разбор всех отвергнутых гипотез (DNS, оператор, регион) и код привязки к жизненному циклу SSO.

#Android #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115👎93🔥3👏2
🐘 Два Gradle-механизма для supply chain, которые почти никто не включает

В Android-проектах зависимости обновляются тихо: transitive upgrade пришёл, сборка не сломалась, никто не заметил.

Dependency Locking фиксирует resolved версии:

// build.gradle.kts
dependencyLocking {
lockAllConfigurations()
}


Запускаешь ./gradlew dependencies --write-locks, Gradle создаёт .lockfile в gradle/dependency-locks/. После этого любое изменение версий требует явного --update-locks.

Dependency Verification проверяет подлинность артефактов:

# gradle.properties
org.gradle.dependency.verification=strict


Инициализация: ./gradlew --write-verification-metadata sha256. Создаёт gradle/verification-metadata.xml с checksums.

Оба файла идут в git. Локинг без верификации не защитит от подмены артефакта на CDN. Верификация без локинга не предотвратит silent upgrade. Работает только в паре. В большинстве Android-проектов ни одно из этого не включено, а полезно чтобы остановиться каскадные неявные обновления

#Gradle #Android #DevSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34👎7
🚀 Вышел Room 3.0 Stable и это не просто поднять версию, а надо мигрировать на новую библиотеку!

Google зарелизил Room 3.0 (androidx.room3), и это самый серьёзный мажор Room за всю его историю: библиотеку переписали под Kotlin Multiplatform с нуля.

Ради обратной совместимости 3.0 живёт в отдельном пакете и maven-координатах (androidx.room3:room3-runtime вместо androidx.room:room-runtime), поэтому 2.x и 3.x спокойно уживаются в одном проекте на разных базах данных. Мигрировать можно постепенно, модуль за модулем.

Cама миграция не косметическая. Cursor и SupportSQLite слой под Android убраны, всё теперь через корутины:

// было (Room 2.x)
roomDatabase.query("SELECT * FROM Song").use { cursor -> ... }

// стало (Room 3.x)
roomDatabase.useReaderConnection { connection ->
connection.usePrepared("SELECT * FROM Song") { stmt -> ... }
}


KAPT для Room больше не работает вообще, только KSP и весь код генерируется на Kotlin. InvalidationTracker.Observer заменили на Flow (createFlow()). Конфигурация через Executor тоже ушла, теперь CoroutineContext.

Из нового:
🔥 FTS5 через @Fts5
🔥 поддержка JS и WasmJS (драйвер поверх Web Worker и OPFS)
🔥 кастомные DAO return type converters. Paging, RxJava и LiveData интеграции теперь строятся на одном общем API вместо трёх разных костылей ранее.

‼️ ВАЖНО: это не «обновил зависимость и всё скомпилировалось». Если у тебя много прямых обращений к SupportSQLiteDatabase или ты завязан на Executor-конфигурацию, то закладывай время на миграцию.

#Android #AndroidDev #KMP #Web #WASM #AndroidJetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73👎30👍102
🤖 Google пересчитал Android Bench для AI-кодинга: новый движок оценки и восемь новых моделей

В июльском релизе апдейта Android Bench (лидерборда LLM для Android-задач) изменились не только модели, но и сам механизм оценки. Ранее бенчмарк использовал кастомный mini-swe-agent v1, теперь — фреймворк Harbor.

Весь лидерборд пересчитали заново: баллы всех моделей изменились, а старые результаты сохранены в архиве.

Добавили восемь моделей: Claude Fable 5, Claude Sonnet 5, Claude Opus 4.8, GLM 5.2, Kimi K2.7 Code, MiniMax M3, Qwen 3.7 Plus и Qwen 3.7 Max. Лидер — Claude Fable 5 с 84,5 баллами. GPT-5.5 отстаёт на четыре балла (80,2), а Sonnet 5 — почти на 10 баллов. Ожидаем добавления семейства GPT 5.6.

#Android #AndroidDev #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎112
🤖 Помимо это в Android Bench теперь можно предложить добавить задачу в подборку для оценки или прогнать и опубликовать собственные тесты через Harbor.

Раньше методика Android бенча была открытой, но доступной только для ознакомления. Теперь же бенчмарк можно адаптировать под свою кодовую базу и реально проверить модели на ваших задачах.

#Android #AndroidDev #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
👎9👍61
Android Broadcast
🤖 Google пересчитал Android Bench для AI-кодинга: новый движок оценки и восемь новых моделей В июльском релизе апдейта Android Bench (лидерборда LLM для Android-задач) изменились не только модели, но и сам механизм оценки. Ранее бенчмарк использовал кастомный…
📈 Моя аналитика обновленного Android Bench и личные впечатления:

👍 Топ 5 моделей вполне оправдан и скоро там ворвутся модели GPT 5.6. Nek активно работает с ними и можете почитать в его блоге, а я ему доверяю. Проблема топов - очень высокая цена для достижения этих цифр, хотя другие показали затраты меньше, потому что просто не смогли справится и остановились на пол пути

😂 GLM 5.2 выдаёт результат на уровне Opus 4.8, но стоит на 33% дороже ($117 против $88). Почти треть переплаты за тот же результат. Мой личный опыт это подтверждает отдельно от бенчмарка: на подписке за $60 я за час съел недельный лимит, не сделав ничего полезного. Не знаю, кому такие открытые модели вообще нужны в таком виде.

⭐️ Gemini 3.5 Flash — реально худшая сделка во всём рейтинге. Хуже Fable 5 по score (71.1 против 84.5) и при этом дороже ($165.6 против $133.2). Flash в названии обычно значит дешёвый быстрый тир, тут наоборот: дороже топа при качестве почти на 13 пунктов ниже.

🏆 Kimi K2.7 Code — результат между Opus 4.7 и 4.8 (70.4), а стоит примерно вдвое дешевле. Пока лучший баланс качество/цена среди моделей с внятным score.

🤔 DeepSeek V4 (Pro и Flash) заметно отстают от топа по качеству, но стоят копейки. Для дешёвого чернового прогона это рабочий вариант.

Жду появления в рейтинге моделей Composer 2.5 и Grok 4.5, так как они явно не дали мне глубины Opus, но справились довольно неплохо, и продолжаю их тесты. GLM 5.2 оказался мусором, съедающим бюджеты.

#Android #AndroidDev #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26👎143
🤖 Google, Apple и NBCUniversal реализовали общий HDR-стандарт, и он уже встроен в Android 17

Сколько раз листал ленту в запрещённой соцсети в тёмной комнате, попадается HDR-ролик, и выжигаются глаза. А то же видео на другом устройстве показывается как обычное. Связано это с тем, что каждая ОС и устройство сами решают, как показать видео, из-за отсутствия общих правил.

Eclipsa Video — это попытка создать стандарт. Открытая спецификация SMPTE ST 2094-50 от Google, Apple и NBCUniversal. В файл кладутся два вида метаданных: reference white задаёт опорную точку обычной яркости, чтобы интерфейс рядом с видео не слепил, а headroom-adaptive gain curves покадрово говорят дисплею, как ужимать тени и полутона, когда запаса яркости не хватает.

Разработчику делать почти нечего. Воспроизведение и запись встроены в Android 17 (API 37), Media3 и ExoPlayer подхватывают метаданные сами, настраивать плеер не нужно. Есть гайд по интеграции и HDR Explorer, где gain-кривые видно вживую.

‼️ Платформа готова, а железа нет. Первые сертифицированные устройства обещают до конца года, телевизоры позже. Существующие устройства не факт, что получат сертификацию.

Чтобы Google и Apple были в одной спеке — это редкость, и только поэтому у стандарта есть шанс. Хотя ирония налицо: пользователю обещают, что видео везде смотрится одинаково, и добавляют ещё один формат рядом с Dolby Vision и HDR10+. Время всё покажет.

#Android #HDR #Media3 #Google #Apple
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28👎4🔥11
Forwarded from Claude AI Dev Broadcast
😮 Так ли хорошо Grok 4.5 как про него говорит Маск?

Сразу после разбора сел с ним делать задачи и в целом он неплохо проявил себя. Решил дать не самую сложную, но и не самую простую задачу - миграция DI в многомодульном Android проекте. В целом справился, но без но не обошлось. Буду тестировать дальше и рассказывать про итоги.

🪙 Демо и мои впечатления в видео на Boosty

#AI #Grok #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
12👎19👍9🔥43
🤖 Reddit переписали обёртку над ExoPlayer с нуля

Алексей Быков выложил разбор: точечные перформанс-оптимизации ExoPlayer выросли в полноценную архитектуру:
👉 self-hosted UI-компоненты для видео
👉 пул плееров с прогревом
👉 четыре реальных продакшн-бага по пути (гонка позиций при паузе, повторное использование MediaSource между плеерами, Choreographer для плавного seekbar).

🚀Итог — задержка старта видео упала на 65% на P50.

Полезно прочитать, если в приложении видео больше одного плеера на экране или вы сами проектируете архитектуру поверх ExoPlayer/Media3. Найдёте в статье готовые паттерны и грабли, мимо которых можно пройти.

🔗 Все детали в подробном разборе

#Android #AndroidDev #ExoPlayer
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍62🔥94👎3
🔨 Android Studio Quail 2 вышла в stable:

👉 Параллельные чаты агента. Открываешь несколько вкладок Agent Mode и гоняешь задачи одновременно: рефакторинг UI в одной вкладке, правка ProGuard-правила в другой, генерация документации в третьей. У каждого чата можно выбрать свою модель.
⚠️ Worktree пока не поддерживается, так что параллельные агенты работают в одном рабочем дереве, за конфликтами следить самому.


👉 LeakCanary встроен в Profiler. Популярный детектор утечек памяти теперь встроенная фича профайлера, не отдельная зависимость в проекте. На компьютере разработчика анализ идёт быстрее, заявлено до 5 раз в сравнении запуском на телефоне. Есть интерактивная трассировка утечки, переход к коду и кнопка Fix with Agent.

👉 App Quality Insights теперь сам предлагает план фикса краша по данным из панели и может применить правку кода.

#Android #AndroidStudio #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
1👎22👍1831
🤖 Программа Android Developer Verification не будет работать в санкционных странах. Это значит что можно будет распространять приложения как будто ничего и не поменялось. Но если хотите чтобы приложение могли поставить за пределами санкционных стран - пройти верификацию придётся.

Как жалко, что мы не получим этой системы проверки (сарказм)

#Android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥60👎21👍943
🤖 Вышла Android 17 QPR2 Beta - первая бета Android 17.1, которая выйдет в 4 квартале. Пока там только багофикс

#Android #AndroidDev #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
15👎7
Samsung представила новые складные устройства и новый Fold требует вашего внимания, я точнее адаптации. Соотношение сторон 4:3 внутри и 16:10 снаружи. Формат очень интересный и вызовет интерес аудитооии, так что стоит потестировать. Может и завезут в Andorid Studio преднамеренные эмуляторы от партнёра

https://youtu.be/pLNJ-fNYTKU?si=4k98KxL7e_NYzKpU

Больше подробностей в анонсе

#Android #AndroidDev #Foldable
1👎12👍51
📢 ВНИМАНИЕ, Android-разработчики!

Google анонсировала важные изменения в Nearby Connections API, которые вступят в силу в конце 2026 года.

‼️ Что меняется?
Раньше API мог автоматически включать Wi-Fi и Bluetooth для установления соединения между устройствами без участия пользователя.

Теперь этого НЕ БУДЕТ
Nearby API перестанет программно включать радиомодули как для сторонних приложений, так и для приложений Google.

✔️ Что нужно сделать разработчикам?
Перейти на ручное управление. Перед запуском Nearby Connections необходимо убедиться, что нужные радиомодули (Wi-Fi или Bluetooth) доступны и включены. В противном случае нужно попросить пользователя сделать это.

Изменения запланированы на конец 2026 года. Рекомендую проверить свои сценарии подключения уже сейчас, чтобы успеть внести изменения в срок.

#Android #Nearby
Please open Telegram to view this post
VIEW IN TELEGRAM
👎20👍13
🤖 Демонстрация on-device AI в новом open source примере Google

🐱 Jetpacker — это новый пример от команды Android, созданный для демонстрации возможностей AI на устройстве и в облаке.

Что сделано:
👉 Суммаризация информации о маршруте (Trip overview): Преобразует длинное описание маршрута в краткую сводку. Использует Gemini Nano через ML Kit GenAI APIs.
👉 Управление расходами (Expense tracker): Автоматически извлекает структурированные данные (суммы, категории) из фотографий чеков. Использует мультимодальный Gemini Nano 4 через ML Kit.
👉 Аудиодневник (Audio diary): Записывает, транскрибирует и категоризирует голосовые заметки. Работает на ML Kit Speech Recognition и GenAI Prompt APIs.
👉 Системная интеграция с AppFunctions API: Интегрирует возможности приложения с системным ИИ Android (например, позволяет Google Assistant выполнять действия внутри приложения). Подробности в отдельной статье.

#Android #AI #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👎72👍2🎉1
🤖 Гайды по адаптации Android-приложений под широкие раскладушки (Galaxy Fold8) и трифолды на официальном сайте освещают различные аспекты адаптации:

👉 Работу с Window Size Classes
👉 Уровни (Tier) адаптации приложения. Их всего 3, и выполнить уровни 1 и 2 несложно.
👉 Какие изменения конфигурации могут вызываться, но вы для смартфонов на них забивали.
👉 Поддержка смены ориентации (а планшеты и fold-ы вертят часто).
🚀 Готовность Android Jetpack библиотек.

Помните, что с Android 17 все приложения на планшетах будут растягиваться, игнорируя все ограничения в манифесте вашего приложения!


#Android #Foldable #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19👎4