Огляд Android 17 Beta 1 для розробників
13 лютого Google випустила нову версію Android, і ми вирішили поділитися найцікавішим із того, що підготували для розробників. Реліз вийшов стабільно скромним, але потрібним

Хоч Google офіційно відмовилася від назв версій Android на честь солодощів і, починаючи з версії 10, перейшла на літерні позначення, сьогодні фактично залишилися лише цифри. Водночас кодовою назвою Android 17 є Cinnamon Bun (булочка з корицею)
Нижче ми опишемо ті зміни, які Google згадали у себе в блозі, які можуть бути цікавими для розробників ⬇️
🔴 UsesClearTraffic
З Android 7 треба було вказувати параметр, як true, якщо ви хотіли використовувати незашифрований HTTP-трафік (тобто без HTTPS).
<application android:usesCleartextTraffic="true">
За 10 років usesCleartextTraffic задіпрікейтили 🙌 Використовуйте network security configuration
🔴 Обмежили неявні (implicit) надання доступу до URI
Якщо застосунок запускає intent з URI та дією Send, SendMultiple або ImageCapture, система автоматично надає цільовому застосунку дозволи на читання та запис цього URI. Google планує змінити поведінку в Android 18 (Мається на увазі, що заберуть дозволи)
🔴 Зміни в роботі клавіатури
Клавіатура тепер не з’являється автоматично після повороту екрана за замовчуванням, якщо розробник не налаштував це прапорцем або системним викликом
🔴 Посилення обмежень для фонового аудіо
Головна мета — запобігти ситуаціям, коли додатки випадково або без участі користувача відтворюють звук. Якщо ваш застосунок намагається відтворити аудіо, змінити гучність або запросити аудіофокус, перебуваючи у фоні, система заблокує ці дії. Якщо ви вже використовуєте MediaSessionService, то нічого робити не треба. Як на мене, то це чудова зміна, бо дуже напрягали ситуації, коли перемикаєшся на інший застосунок, а щось у фоні грає 🔥
🔴 Обмеження запуску activity з фону, посилено правила безпеки для IntentSender
Розробникам необхідно відмовитися від MODEBACKGROUNDACTIVITYSTARTALLOWED. Натомість слід використовувати, наприклад MODEBACKGROUNDACTIVITYSTARTALLOWIFVISIBLE, який дозволяє запуск Activity лише у випадках, коли застосунок-ініціатор є видимим, що суттєво ускладнює атаку 🚓
🔴 Новий дозвіл USELOOPBACKINTERFACE.
Спілкування між різними додатками тепер заблоковане за замовчуванням. Щоб з’єднання відбулося, обидві сторони (і той додаток, що відправляє дані, і той, що приймає) повинні прописати дозвіл USELOOPBACKINTERFACE у своїх маніфестах (для прикладу, 127.0.0.1 or ::1). Якщо додаток спілкується сам із собою через localhost, цей новий дозвіл не потрібен. Все працює, як і раніше.
🟢 Certificate Transparency увімкнений по дефолту
Тут і додати немає чого 😅
🟢 Ігнорування обмежень орієнтації та зміни розміру на великих екранах
В Android 16 можна було заігнорувати те, що Google вимагала від застосунків працювати на весь екран з різною орієнтацією. В основному це потрібно для десктоп застосунків, планшетів, TV та авто (В Android солідний такий зоопарк девайсів). На щастя Google надає багато інструментів для реалізації динамічних макетів (Тут можна почитати про це детальніше Applying layout). Особисто вважаю, що це класна зміна і Google проробила багато роботи, щоб все це можна було легко реалізувати 🔥
🟢Handoff 🔥
Нова функція і API для безперервної роботи з пристроями, котрі знаходяться поруч. Наприклад, можно запустити нативний або веб додаток і продовжити роботу на другому пристрої.
У цьому сценарії взаємодії між застосунками користувач переходить за deep link до призначеної Activity.
Наразі в Android 17. Beta 1 немає деталей, як це все буде виглядати, але по опису звучить так, що ви зможете почати щось робити з десктопної версії Android, потім взяти телефон і продовжити писати мейл в маршрутці і воно мало б зберігати стейт 🤔. Зараз, для прикладу, якщо в планшеті закрити нотіфікейшн, то той самий закриється і на телефоні, якщо ви маєте там однакові акаунти, підозрюю, що це «продовження» цієї фічі
🟢 Dynamic Camera Session Updates
Перемикання між варіантами використання (з фото на відео на приклад) без закриття сеансу камери. Нарешті блогери зможуть приблизити і воно буде плавно 🤯 Ура!
🟢 Logical multi-camera device metadata
Тепер при роботі з камерами можна отримувати метадані від усіх активних фізичних камер, а не лише від основної
🟢 Нові профілі для профайлера апок
🟢 Підтримка VVC (H266)
Це відеокодек, який був представлений в 2020 році і який має бути вдвічі ефективніший порівняно з H265
🟢 Нові профілі для ProfilingManager
Cold start, Out Of Memory і кіл процесу, якщо вбивається системою через надмірне використання CPU
🟢 Нова реалізація MessageQueue
Тепер це lock-free архітектура АЛЕ ламає роботу деяких бібліотек або коду, потребує оновлення бібліотек
🟢API AdvancedProtectionManager для Advanced Protection Mode
Це режим безпеки для «блокування» сайдлоудингу, Google Play Protect, обмеження високоризикових функцій. Тепер застосунки можуть його ввімкнути самі або обмежити використання функцій з високим ризиком, якщо користувач з цим погодився.
Інше:
- Безпечніше динамічне завантаження коду (Safer Native DCL — C/C++)
- Покращено роботу з методами введення для мов CJKV
- Оптимізація супутникової мережі
- Анімація зменшення розміру екрана доступна при свайпі для викливу асистента
- Налаштування віджету пошуку в лаунчері
- В деяких меню налаштувань більш компактні елементи
- Багато різних візуальних змін
Коли вийде стабільна версія Android 17?
Десь в березні Google випустить Platform Stability і на Google I/O буде реліз (або як останнім часом, скажуть пару слів і підуть говорити про штучний інтелект 😅)

Яка, на вашу думку, найцікавіша фіча Android 17? І підписуйтесь на наш блог про розробку під Android
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів