Google обязует всех поддерживать Edge-to-edge в приложениях, при это системный UI для разработчиков такой 🫣 Ну а чё... стерпят
#android #android16
#android #android16
🔥115🤯49👍13❤3🤔1
В Android 16 QRP1 появилась поддержка десктопного режима при подключении внешних дисплеях. Включается режим плавающих окон, а значит приложения смогут иметь произвольный размер, управление перейдет в мышку и клавиатуру (а смысл иначе от внешнего дисплея?)
Совсем уже не новинка в мире Android, но какому количеству людей это будет необходимо? Делитесь своим мнением в комментариях
#android #android16 #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤31👍15🔥8
Media is too big
VIEW IN TELEGRAM
0:00 О чем видео
2:01 Демо виджетов
7:05 Советы по снижению потребления памяти
7:35 Демо уведомлений
#nadroid #android16
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
🤯 Samsung закрывает DeX Mode
Samsung решила закрыть свой дескоптный режим - DeX. Причина - будет использоваться десктопный режим из Android 16
#android #android16 #samsung
Samsung решила закрыть свой дескоптный режим - DeX. Причина - будет использоваться десктопный режим из Android 16
#android #android16 #samsung
🔥55🤯27👍9
После обновления моего Pixel 9 Pro заметил что в лаунчере отключили растягивание старого формата иконок приложения на весь его размер в лаунчере. Заметил, потому что банковское приложение, которым я пользовался перестало растягиваться 😞
Напомню, что Android иконки имеют свою историю и по хорошему надо поддерживать несколько форматов в зависимости от minSdk вашего приложения:
👉 Обычное лого (Android 7.0 и ниже)
👉 Круглое лого (Android 7.1)
👉 Адаптивное лого (Android 8.0)
👉 Themed лого (Android 13). Расширение формат Adaptive Icon из Android 8.0
Какое поведение на других стандартных лаунчерах приложения у смартфонов с Android 16 я не знаю, но можете скинуть скриншоты в комментариях.
#Android #Android16
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍25❤3
Live Update уведомление - новый формат нотификаций для отслеживания прогресса операции, ограниченного по времени, в реальном времени: доставки, таймера, поездки на такси и другого.
Обычно все такие крутые фичи быстро приходят в приложение пиццы с птицей. Пока его не видел там, но очень очень жду. Да как и в такси. Разработчики, пожалуйста, расскажите ПМам, что теперь на Android можно как на iOS сделать
#android #android16
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍12❤3
🤯 В Android 16 квоты на выполнение фоновой работы через JobScheduler (его обёрткой является WorkManager) привязали к механизму App Standby bucket. Также это коснется и DownloadManager
Теперь, то как регулярно вы пользуете приложением будет влиять на то как много фоновой работы можно будет выполнить. Подробнее про квоты можно читать тут.
Всё шлифуют систему, чтобы приоритизировать её на основании популярности приложения для пользователя. Я вообще не открываю часть приложений и рассчитываю, что они в фоне сделают работу, а сейчас лучше сразу наверняка идти в настройки и отключать ограничения на работу в фоне (спасибо, что не убрали совсем). И я как разработчик знаю про это. Как жить простым пользователям?
С одной стороны решение правильное - оптимизация идет с упором на интересны пользователя и сохранение батарейки, но с другой стороны разработчикам теперь надо больше объяснять алгоритм действий для включения ожидаемой пользователем работы всегда.
Что вы думаете про совершествование формата фоновой работы в Android? Делитесь своими болями и предложениями.
#android #android16
Теперь, то как регулярно вы пользуете приложением будет влиять на то как много фоновой работы можно будет выполнить. Подробнее про квоты можно читать тут.
Всё шлифуют систему, чтобы приоритизировать её на основании популярности приложения для пользователя. Я вообще не открываю часть приложений и рассчитываю, что они в фоне сделают работу, а сейчас лучше сразу наверняка идти в настройки и отключать ограничения на работу в фоне (спасибо, что не убрали совсем). И я как разработчик знаю про это. Как жить простым пользователям?
С одной стороны решение правильное - оптимизация идет с упором на интересны пользователя и сохранение батарейки, но с другой стороны разработчикам теперь надо больше объяснять алгоритм действий для включения ожидаемой пользователем работы всегда.
Что вы думаете про совершествование формата фоновой работы в Android? Делитесь своими болями и предложениями.
#android #android16
🤔58🤯21❤9👍8
С релиза Android 16 Google перешла на новый цикл обновлений Android - раз в квартал. Нас ждут новые фичи и API для разработчиков
Чтобы проверить наличие SDK надо использовать новый способ проверки
// Проверяем версию API через новое API для проверки версии SDK
if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1)
Что нового:
👉 Принудительный перевод светлых приложений в темные. Делается инверсия цветов
👉 Система будет делать иконки приложений автоматически тематически (монохромная версия, покрашенная в цвета системы)
👉 Приложения смогут переопределить системный UI шаринга, чтобы оставаться интерактивными
👉 Добавили возможность реализации переноса данных между Android и iOS версий приложения
👉 PDF в Android SDK теперь поддерживает редактирование и аннотации. На основе этого API будет работать Jetpack PDF библиотека
👉 Display Topology API - новое API для получения информации при работе с несколькими экранами о их положении - границы и относительное размещение.
👉 Тайлы в быстрых настройках теперь должны относится к одной из стандартных категорий
👉 Больше возможностей для управления Haptic Feedback
👉 Много новых Media API (подробности отдельным постом)
👉 Улучшения управлением компаньон устройств (подробности отдельным постом)
👉 Улучшение безопасности и приватности (подробности отдельным постом)
👉 Улучшения API для разработчиков (подробности отдельным постом)
Релиз стабильной версии ожидается в 4 квартале (ориентировочно ноябрь 2025). Уже доступа первая Beta версия для Google Pixel. Подробнее про изменения читайте на сайте Android Developers
#android16
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤7🔥6🤯1
🤯 Google придумала новый способ давления на разработчиков
Теперь если в приложении не добавили тёмную тему, то пользователь сам принудительно сделает её включение через системные настройки. Это приведёт к инверсии цветов.
Наконец-то Google поняла что разработчики иногда забивают на тёмную тему, обязать их не получается (ну почему через Google Play не обязать?).
Видно так решила Google:
Странно, что на рекламной графике использовали приложение FitBit, хотя в нем есть нативная темная тема, да и сам продукт принадлежит Google. В FitBit нет тёмной темы. Да и не удивился - худшее спортивное приложение, что я использовал 😞
#android16
Теперь если в приложении не добавили тёмную тему, то пользователь сам принудительно сделает её включение через системные настройки. Это приведёт к инверсии цветов.
Наконец-то Google поняла что разработчики иногда забивают на тёмную тему, обязать их не получается (ну почему через Google Play не обязать?).
Видно так решила Google:
Будем форсировать фичи и пусть пользователи жалуются и занижают рейтинг приложения в магазине
Странно, что на рекламной графике использовали приложение FitBit, хотя в нем есть нативная темная тема, да и сам продукт принадлежит Google.
#android16
🤔38👍20🤯7❤4🔥3
Media is too big
VIEW IN TELEGRAM
Вот так рабоnает принудительный режим темной темы в Android 16 QRP 2
Google Maps имеют свою тёмную тему, но в настройках приложения я поставил принудительно только светлую тему. Расширенный темный режим не берет ресурсы для темной темы, а инвертирует светлую.
#android #android16
Google Maps имеют свою тёмную тему, но в настройках приложения я поставил принудительно только светлую тему. Расширенный темный режим не берет ресурсы для темной темы, а инвертирует светлую.
#android #android16
👍53🔥5❤3🤯3
Принудительные монохромные иконки в действии. ChatGPT у меня установлен как PWA и пока их автоматический монохром не задевает, вот Shortcut приложений перекрасился
#android #android16
#android #android16
👍30🔥8🤔2❤1🤯1
Media is too big
VIEW IN TELEGRAM
#android16 #android #androiddev
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔15👍9🏆3🤯2
🤯 ОФИЦИАЛЬНО На Android запускаются графические Linux приложений
В Android 16 QRP2 Beta 1 уже можно запустить графические Linux приложения. На скриншоте - Visual Studio Code для Debian.
Объединение технологий ChromeOS и Android дают свои результаты и идёт расширение возможностей. Дальше - вся ваша Steam библиотека будет доступна через Proton (как в SteamDeck) 🔥🔥🔥
Источник - Mishaal Android News
#android16 #linux
В Android 16 QRP2 Beta 1 уже можно запустить графические Linux приложения. На скриншоте - Visual Studio Code для Debian.
Объединение технологий ChromeOS и Android дают свои результаты и идёт расширение возможностей. Дальше - вся ваша Steam библиотека будет доступна через Proton (как в SteamDeck) 🔥🔥🔥
Источник - Mishaal Android News
#android16 #linux
🔥129🤯23❤7👍4
🤯 Предупреждение об отсутствии поддержки страницы памяти в 16 Kb
Google решила раздражать всех разработчиков - пока не добавите поддержку нового размера страницы в дебажное приложение, установленное через ADB, будете видеть предупреждающий диалог на старте приложения.
Пользователи ничего не увидят, потому что им уходят релизные сборки. Так ведь у вас?
#android16 #ndk
Google решила раздражать всех разработчиков - пока не добавите поддержку нового размера страницы в дебажное приложение, установленное через ADB, будете видеть предупреждающий диалог на старте приложения.
Пользователи ничего не увидят, потому что им уходят релизные сборки. Так ведь у вас?
#android16 #ndk
👍44🤯27❤4
Новая версия фреймворка для тестирования 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 #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤1
Осенний фича релиз 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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍6
Я давно ждал, когда в Android появится аналог крутых Live Activities из iOS. И когда Google наконец-то представил Live Updates в Android 16, сразу же ждал когда она появится в приложениях доставки/такси, используемыми мною. Неудивительно но ДоДо Пицца оперативно это сделали.
Оказалось, что за красивыми картинками из презентации скрывается целая история с ограничениями, которые не описаны в документации. Ребят из ДоДо прошли через боль дизайнеров, перерисовывавших макеты, и неожиданные сюрпризы от SDK и рассказывают про свой опыт.
🔑 Ключевые открытия и борьба с реальностью:
🤯 Макеты врут! Иконка (например, машинка) не может красиво «обрезать» сегмент прогресс-бара, как в дизайне. Она просто ложится сверху, и между ними всегда будет зазор.
✅ Что в итоге?
Несмотря на все ограничения, фича того стоит! Пользователи получают супер-наглядный и всегда видимый статус заказа, а мы — новый стандартизированный инструмент от Google.
А вы уже видели Live Updates в действии? Что думаете о таком подходе Google? 👇
#Android #Android16 #AlwaysOn
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥11❤4🤔3
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍17🔥1
Раньше системный шузер для шаринга был «односторонним»: вы собрали 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30❤6
В 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40❤13🔥2👎1