TGTGInsighttelegram intelligenceLIVE / telegram public index
Retour aux chaînes
Android Broadcast avatar

TGINSIGHT CHAT

Android Broadcast

@android_broadcast

Technologies

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

Abonnés1.4万Abonnés actuels de la chaîne
Posts indexés1,000Nombre de posts indexés
Portée récente95,090Somme des vues récentes
Posts récents

Posts récents

Tag : #android16 · 56 posts

当前筛选 #android16清除筛选

🤖Проблемы обязательного edge‑to‑edge в Android В Android 16 по умолчанию включили режим edge‑to‑edge, и разработчики больше не могут от него отказаться, если таргетят новую версию SDK. Да, часть ответственных команд внедрила поддержку ещё раньше, другие начали дорабатывать интерфейс после объявления включения в Android 16. У меня дома стоит робот‑пылесос, и часть функций управления им на Pixel 9 Pro стала недоступна: кнопка меню уезжает под системный статус‑бар, и повлиять на это я никак не могу. В результате получаю дискомфорт, производителю пылесоса всё равно, Google — тоже. Считаю, что в такой ситуации Google могла бы поступить по‑другому: 🛒Запретить публикацию новых приложений без поддержки edge‑to‑edge и постепенно снимать с публикации старые, не обновлённые версии. 🤖Дать пользователю системную настройку, позволяющую отключать edge‑to‑edge для конкретного приложения, как это делает, например, часть других производителей Android‑устройств. Google формально двигает UI вперёд, но забывает, что за качество приложений отвечает магазин и именно он должен жёстко требовать соответствия современным гайдлайнам. Видно, с кого берут пример, но Apple хотя бы последовательно принуждает разработчиков внедрять нововведения из свежих версий iOS и просто не даст опубликовать приложение в App Store без поддержки нужных требований, а это в большинстве регионов единственный официальный способ распространения софта на iOS. #android#android16#edgetoedge

7,700 views

🤖Новые способы защиты в Android 16 от malware, которое злоупотребляет Accessibility В Android уже давно существует системная проблема - вредоносные приложения используют Accessibility API не для доступности, а для атак: скрытое считывание текста с экрана, автоматические клики по кнопкам без ведома пользователя, подмена пользовательских действий и обход бизнес-логики и другие. В Android 16 добавили возможность запрещать доступ к элементам UI в приложениях accessibilityDataSensitive - новый флаг позволяет явно пометить UI-элемент как содержащий чувствительные данные. Accessibility-сервисы не могут читать или взаимодействовать с этим элементом, за исключением — легитимные сервисы доступности (screen readers и т.п.), filterTouchesWhenObscured (был до Android 16) - когда у View (или окна) включён filterTouchesWhenObscured = true, то система игнорирует touch события, если в момент касания поверх окна есть другое приложение. Так делают злоумышленники для перехвата касаний, показывая прозрачный overlay Использовать нужно на: 👉 экранах логина, 👉 платежных формах, 👉 экранах с персональными и финансовыми данными. // Защита от tapjacking val composeView = LocalView.current DisposableEffect(Unit) { composeView.filterTouchesWhenObscured = true onDispose { composeView.filterTouchesWhenObscured = false } } // Защита чувствительных данных BasicText( text = "Password", modifier = Modifier.semantics { sensitiveData = true } ) <TextView android:filterTouchesWhenObscured="true" /> <TextView android:accessibilityDataSensitive="true" /> // Через код view.filterTouchesWhenObscured = true view.isAccessibilityDataSensitive = true Новые возможности на заменяет FLAG_SECURE, а дополняет его #Android#Android16#Безопасность#AndroidDev

7,540 views

🤖Android 16 QPR2: системный шаринг наконец стал интерактивным Раньше системный шузер для шаринга был «односторонним»: вы собрали Intent, отдали его в Intent.createChooser(...) — и дальше всё полностью контролирует система. После открытия sharesheet вы уже не можете: 👉 обновить текст или вложения; 👉 убрать/добавить таргеты; 👉 синхронизировать состояние с продолжающимся действием в приложении. Если пользователь что-то поменял (например, отредактировал текст или выбор вложений), приходилось закрывать шузер и открывать его заново. Не так давно была возможность изменить контент для шаринга из шузера (сделали похожим как в iOS), а также добавить действия. В Android 16 QPR2 / API 36.1 появился новый механизм — Interactive Chooser Sessions. Теперь приложение может держать живую сессию шаринга, обновлять её и получать события, пока открыт системный sharesheet. Для этого используются ChooserManager и ChooserSession. // Базовый пример: запуск интерактивной сессии (Kotlin) val chooserManager: ChooserManager = context.getSystemService() val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "text/plain" putExtra(Intent.EXTRA_TEXT, "This is a message that will be shared.") } val chooserIntent = Intent.createChooser(shareIntent, null) val session: ChooserSession = chooserManager.startSession(context, chooserIntent) val token: ChooserSessionToken = session.token token можно сохранить в ViewModel или savedStateHandle, чтобы потом восстановить сессию после поворота экрана или пересоздания Activity. val existingToken: ChooserSessionToken = /* restore from state */ val existingSession: ChooserSession = chooserManager.getSession(existingToken) ?: return Управление сессией через ChooserSession API val executor: Executor = ContextCompat.getMainExecutor(context) session.addStateListener(executor, object : ChooserSession.StateListener { override fun onStateChanged(state: Int) { } override fun onBoundsChanged(bounds: Rect) { } }) Временное отключение таргетов на время долгой операции: session.setTargetsEnabled(false) val updatedShareIntent = Intent(Intent.ACTION_SEND).apply { type = "text/plain" putExtra(Intent.EXTRA_TEXT, "Updated message generated in runtime") } val updatedChooserIntent = Intent.createChooser(updatedShareIntent, null) session.updateIntent(updatedChooserIntent) session.setTargetsEnabled(true) // Завершение сессии, когда шаринг больше не нужен: session.endSession() #Android#Android16

7,000 views

🤖Android 16 QPR2 вышел — первый минорный релиз SDK с новыми API! Google выпустил Android 16 QPR2 — первое минорное обновление платформы, которое приносит новые функции без ломающих изменений. 🔧Новый подход к версиям SDK Теперь можно проверять минорные обновления через новые поля в Build: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA && Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { // API из QPR2 } Ключевые изменения: 👉Расширенная темная тема — система автоматически инвертирует интерфейс для доступности 👉Пользовательские формы иконок — пользователи могут менять форму всех иконок 👉Интерактивный шеринг — обновление контента в реальном времени в превью шаринга 👉Новый сборщик мусора — снижает нагрузку на CPU Каждую фичу разберем подробнее в следующих постах! Подписывайте на @android_broadcast, чтобы не пропустить #Android16#AndroidDev#Android

5,940 views

🤖Как в приложение Додо пиццы добавляли Live Update из Android 16: где макеты врут, a SDK ставит границы Я давно ждал, когда в Android появится аналог крутых Live Activities из iOS. И когда Google наконец-то представил Live Updates в Android 16, сразу же ждал когда она появится в приложениях доставки/такси, используемыми мною. Неудивительно но ДоДо Пицца оперативно это сделали. Оказалось, что за красивыми картинками из презентации скрывается целая история с ограничениями, которые не описаны в документации. Ребят из ДоДо прошли через боль дизайнеров, перерисовывавших макеты, и неожиданные сюрпризы от SDK и рассказывают про свой опыт. 🔑 Ключевые открытия и борьба с реальностью: 🤯 Макеты врут! Иконка (например, машинка) не может красиво «обрезать» сегмент прогресс-бара, как в дизайне. Она просто ложится сверху, и между ними всегда будет зазор. 🖌Цвета не сходятся. У прогресс-бара есть скрытый оверлей, поэтому подобрать идеально одинаковый цвет для иконки и бара — невозможно. 📱Эмулятор — не помощник. Ни чипсу в статус-баре, ни работу на Always-On-Display на эмуляторе не проверить. Только живой девайс! 🍎iOS vs Android: В iOS Live Activities — это мини-виджет с огромной свободой для брендинга. В Android — это жёсткий системный шаблон. Минус для дизайнеров, но плюс для единообразия опыта пользователя. ✅ Что в итоге? Несмотря на все ограничения, фича того стоит! Пользователи получают супер-наглядный и всегда видимый статус заказа, а мы — новый стандартизированный инструмент от Google. А вы уже видели Live Updates в действии? Что думаете о таком подходе Google? 👇 #Android#Android16#AlwaysOn

7,270 views

🤖Вышла вторая Beta Android 16 QRP2 Осенний фича релиз Android 16 всё ближе и вышла следующая бета с новыми возможностями: 👉 Platform Stability - API больше меняться не будет и можно заливать в Google Play в Beta/Alpha каналы 👉 Специальный режим установки приложения через ADB, чтобы разработчики могли тестировать приложения с вводом системы верификации разработчиков: adb shell pm set-developer-verification-result 👉 Новый сборщик мусора. ART теперь будет поставляться с Generational Concurrent Mark-Compact (CMC) Garbage Collector, которые фокусируется на сборке новых объектов, которые обычно и чистятся. Ожидается снижения потребления CPU ресурсов и потребление заряда батареи. 👉 Встроенные счетчик количества шагов в Health Connect. Приложения смогут получить эти данные, если у них есть разрешение READ_STEPS. Чтобы проверить наличие API из Android 16 QRP2 надо вызвать новое API if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { // Вызываем APIs из Android 16 QPR2 } Релиз обновленной версии Android 16 ожидается в ноября 2025 #android16

8,170 views

Hashtags

🤖Вышла свежая версия Robolectric с поддержкой Android 16 Новая версия фреймворка для тестирования Android приложения на JVM теперь поддерживает свежую версию Android, а также убрали поддержку Android 5.0 и 5.1 (API Level 21 и 22). 🔥 Новая крутая фича - нативные ресурсы Под капотом Robolectric начинает прокидывать нативные asset-id в C/C++-код фреймворка (вместо Java-эмуляции). Работает пока только на Android 16 Зачем это разработчиками? Большая точность разрешения ресурсов: aapt2-сгенерированные таблицы читаются так же, как на Android устройстве/эмуляторе. Меньше расхождений между JVM-тестом и устройством. Включить можно глобально для всех тестов в Gradle test { systemProperty += ["robolectric.resourcesMode", "NATIVE"] systemProperty += ["robolectric.enabledSdks", "36"] } или для отдельного теста: import org.robolectric.annotation.ResourcesMode @Config(sdk = [36]) @ResourcesMode(ResourcesMode.Mode.NATIVE) class MyTest { /* ... */ } #android16#тестирование

7,530 views

🤯Предупреждение об отсутствии поддержки страницы памяти в 16 Kb Google решила раздражать всех разработчиков - пока не добавите поддержку нового размера страницы в дебажное приложение, установленное через ADB, будете видеть предупреждающий диалог на старте приложения. Пользователи ничего не увидят, потому что им уходят релизные сборки. Так ведь у вас? #android16#ndk

9,150 views

🤯ОФИЦИАЛЬНО На Android запускаются графические Linux приложений В Android 16 QRP2 Beta 1 уже можно запустить графические Linux приложения. На скриншоте - Visual Studio Code для Debian. Объединение технологий ChromeOS и Android дают свои результаты и идёт расширение возможностей. Дальше - вся ваша Steam библиотека будет доступна через Proton (как в SteamDeck)🔥🔥🔥 Источник - Mishaal Android News #android16#linux

10,100 views

🤖 Пример работы расширенной темной темы с Compose приложением. Тут придется темную делать сам, так как настройка не повлияла #android16#android#androiddev

8,530 views

Принудительные монохромные иконки в действии. ChatGPT у меня установлен как PWA и пока их автоматический монохром не задевает, вот Shortcut приложений перекрасился #android#android16

8,230 views

Вот так рабоnает принудительный режим темной темы в Android 16 QRP 2 Google Maps имеют свою тёмную тему, но в настройках приложения я поставил принудительно только светлую тему. Расширенный темный режим не берет ресурсы для темной темы, а инвертирует светлую. #android#android16

7,930 views
PrécédentPage 1 sur 5Suivant