📺Accelerating Android Releases: An Unofficial Guide to Trunk Stable
Хотите быть в курсе последних возможностей Android и внедрять их в свои проекты? В этом видео бывший сотрудник Google и член команды Android расскажет о Trunk Stable – новой квартальной модели релизов Android.
Разберём:
👉 зачем потребовались изменения, чтобы повысить качество и ускорить релизы;
👉 как это связано с новыми регуляторными требованиями;
👉 что такое next, trunk_food и trunk_staging;
👉 как определять фичи, проводить A/B-тесты и работать с фиче-флагами через aconfig;
👉 Как ребейзить изменения и синхронизировать проекты с последними обновлениями Android.
#android#androidos
🤖Project Mainline - важная веха в развитии Android и монополизации ОС компанией Google
До Android 10 фреймворк ОС был монолитным и любое изменение приводили к необходимости раздачи новой версии вендором.
Google выделила во фреймворке (и продолжает делать) компоненты и теперь может обновлять их независимо. Делать это может вендор или приложение с высокими системными правами, например Google Play Services.
Благодаря изменению, теперь не нужно ждать новой версии прошивки от вендора, а вы получите новую версию компонентов и даже портирование новых API из более поздних версий ОС. Так например было с Photo Picker, который появился в Android 14, но его перенесли и на Android 12+, благодаря тому что был сделан модуль медиа, частью которого и есть Photo Picker.
Более подробно читайте в документации
#androidos#android
📹Project Mainline - как Google изменила архитектуру Android ОС и напрямую обновляет устройства
Google на протяжении 10 лет меняла Android под капотом, пока все думали что происходит стагнация. По итогу - быстрые релизы, независимость от вендоров, прямые обновления устройства пользотвателей и всё это благодаря современной архитектуре мобильной ОС.
Как они этого добились - в новом видео на канале.
#AndroidBroadcast#androidos
🪙РАЗБОР. Как устроена система разрешений в Android (40 мин)
Система разрешений в Android - супер нетривиальная задача. А если я вам скажу, что это не баг, а фича? Да, авторы Android сделали ее именно такой, чтобы защитить пользователя от сторонних приложений. Разработчикам приходится сражаться!
В новом разборе вы НЕ узнаете как получить разрешение, но погрузитесь в то как получается разрешение, какие сервисы ОС участвуют в этом, а также как правильно на самом старте проектировать фичи с учетом разного состояния разрешений.
Видео доступно всем подписчикам на Boosty, а полный список на витрине
#AndroidBroadcast#Android#AndroidOS
🤖Разница между Permission и Ability в Android ОС
Чтобы получить доступ к пользовательским данным или сенсорам, разработчику приходится работать с механизмом разрешений (permissions): пользователь должен выдать приложению право на использование соответствующего ресурса. Однако наличие Permission не гарантирует, что приложение действительно сможет получить эти данные.
Например, приложению выдали доступ к геолокации, и формально оно имеет право узнать, где находится пользователь. Но при запросе локации приложение получает null. Почему?
Здесь и появляется понятие Ability — фактическая возможность получить данные в текущий момент времени. И она может отсутствовать даже при наличии разрешения.
Причин может быть множество:
👉 пользователь отключил геолокацию через быстрые настройки;
👉 система временно приостановила доступ (например, в режиме энергосбережения);
👉 прошивка вендора ограничила работу сенсора;
👉 администратор устройства запретил доступ к геолокации;
👉 отсутствует физический сигнал (GPS недоступен, нет сети и т.д.).
Итог: Permission — это юридическое право, Ability — это реальная техническая возможность.
С точки зрения архитектуры, наличие permission не должно рассматриваться как гарантия наличия данных. Бизнес-логика и use case’ы должны быть спроектированы так, чтобы корректно работать в ситуации отсутствия ability.
Другими словами: приложение должно быть готово к тому, что внешний мир в любой момент может стать недоступным — даже если формально все разрешения выданы. Это означает:
1️⃣ отсутствие жёстких предположений о доступности данных;
2️⃣ обработку null, ошибок и таймаутов как нормального сценария;
3️⃣ явное моделирование состояний «данные недоступны» в доменной модели.
Permission — это контракт с пользователем. Ability — это контракт с реальностью. И именно второй чаще всего нарушается.
#AndroidDev#AndroidOS#Архитектура