Android 14 додає нові функції, щоб зробити роботу сторонніх магазинів додатків ще кращою

click fraud protection

Android 14 готується зробити роботу ще кращою для користувачів сторонніх магазинів додатків завдяки новим API.

Google Play на сьогоднішній день є найпопулярнішим магазином додатків серед користувачів Android, але дехто може стверджувати, що він не заслужив своє перше місце. Google ретельно перевіряється регуляторними та законодавчими органами в усьому світі через як він зберігає своє домінування в магазині додатків, і немає жодних ознак того, що цей тиск коли-небудь послабиться скоро. Можливо, тому Google бере на себе ініціативу щодо впровадження нових функцій у Android 14 які покращують досвід для користувачів сторонніх магазинів програм.

Більшість сторонніх магазинів програм для Android насправді неконкурентоспроможні з Google Play, і це не лише через їх вибір програм. У той час як перші магазини попередньо встановлених додатків завжди мали можливість виконувати автоматичні оновлення додатків, сторонні магазини додатків лише нещодавно змогли робити оновлення без нагляду. Google додав API в Android 12

що дозволяє стороннім магазинам додатків оновлювати додатки без дій користувача, зменшуючи тертя за допомогою стороннього магазину додатків.

Однак це все одно залишило сторонні магазини додатків у серйозному недоліку, коли справа доходить до функціональності, оскільки вони не могли легко знати, коли було б безпечно фактично виконати автоматичне оновлення. Це те, що Google намагається вирішити в Android 14 за допомогою нового API, який дозволяє стороннім магазинам додатків виконувати «м’які оновлення».

Ніжні оновлення

Android 14 додав новий API, який дозволяє стороннім магазинам додатків перевіряти, чи виконуються певні умови, перш ніж продовжити автоматичне оновлення програми. The PackageInstaller. API InstallConstraints «може використовуватися магазинами додатків для доставки автоматичних оновлень, не порушуючи взаємодію з користувачем (називається щадним оновленням) - наприклад, магазин додатків може затримати оновлення, коли виявить [sic], що додаток для оновлення взаємодіє з користувач».

Цей новий API дозволяє стороннім магазинам додатків перевіряти, чи програма, яку вони готуються оновити, має активну передову службу (isRequireAppNotForeground), певним чином взаємодіє з користувачем (isRequireAppNotInteracting) або знаходиться на екрані (isRequireAppNotTopVisible). Сторонні магазини додатків також можуть перевірити, чи перебуває пристрій у режимі дрімання (isRequireDeviceIdle) чи телефонного дзвінка (isRequireNotInCall).

Хоча API дозволяє вказувати, які умови перевіряти, документація рекомендує використовувати попередньо встановлені обмеження, оскільки «система знає найкраще, як це зробити». Це логічно, враховуючи, що Google мав достатньо часу, щоб розробити найкращий спосіб обробки автоматичних оновлень у власному магазині програм. Використання попереднього налаштування також є корисним, як зазначено в документації, оскільки точність і ефективність м’яких оновлень може бути покращено в майбутніх випусках, якщо Google додасть додаткові обмеження до API.

Кожна умова PackageInstaller. API InstallConstaints дозволяє перевірку вже можна перевірити за допомогою існуючих API, але система обробляє ці перевірки набагато легше та менш нав’язливо. Наприклад, сторонні магазини програм, які хочуть перевірити, чи активно використовується програма, яку вони оновлюють користувачу наразі доведеться використовувати API, наприклад UsageStats або AccessibilityService, обидва чутливі дозволи. Однак якщо вони використовують цей новий API Android 14, їм не знадобляться ці дозволи для виконання своєї роботи.

Оновити право власності

Увімкнення «щадних оновлень» — не єдине покращення в Android 14 для сторонніх магазинів програм. Існує також новий механізм «права власності на оновлення», який дозволяє стороннім магазинам додатків стати ексклюзивним джерелом майбутніх автоматичних оновлень додатків, які вони вперше встановили. Це означатиме, що якщо ви користуєтеся стороннім магазином додатків, оскільки програми, доступні через нього, перевіряються спільноти, наприклад, тоді неперевірене оновлення, доступне в інших магазинах додатків, не буде автоматично надіслано до ваш пристрій.

Зараз, коли ви встановлюєте програму через сторонній магазин програм, ніщо не заважає сторонньому магазину програм оновлювати цю програму. Хоча API автоматичних оновлень Android 12 дозволяє лише стороннім магазинам додатків безшумно оновлювати програми, які вони вперше встановили, це не впливає на сторонні магазини програм, оскільки вони мають привілейовані права INSTALL_PACKAGES дозвіл.

Сторонні магазини додатків на Android 14 можуть використовувати нове setRequestUpdateOwnership метод в PackageInstaller. SessionParams, однак, щоб повідомити системі, що вони претендують на право власності на оновлення програми, яку збираються встановити. Щойно для програми ввімкнено примусове оновлення права власності, усі інші магазини програм — навіть ті, що мають дозвіл INSTALL_PACKAGES — потребують дії від користувача, щоб оновити програму. Оновлення прав власності можна ввімкнути лише під час початкової інсталяції програми, тому інший магазин програм не зможе отримувати оновлення, якщо відповідну програму не буде видалено та повторно встановлено з неї зберігати. Магазини програм можуть перевірити, чи ввімкнено право власності на оновлення для програми, і якщо так, яка програма є власником оновлення, за допомогою нового InstallSourceInfo#getUpdateOwnerPackageName() API.

Сторонні магазини додатків повинні зберігати нові ENFORCE_UPDATE_OWNERSHIP дозвіл на використання API перевірки права власності на оновлення, але оскільки цей дозвіл має рівень захисту «звичайний», система надасть його під час встановлення. Однак ще невідомо, чи буде Google Play перевіряти використання цього дозволу/API.

Встановити попереднє схвалення

Останній новий API Android 14, який я хотів виділити PackageInstaller. Сеанс#requestUserPreapproval. Цей API дозволяє стороннім магазинам додатків запитувати схвалення користувача перед тим, як вони здійснять сеанс встановлення. Я думаю, що це буде корисно для сторонніх магазинів програм, які навмисно хочуть запитувати користувача перед оновленням програми у фоновому режимі.

Наприклад, уявіть, що магазин програм, орієнтований на безпеку, хоче повідомити свого користувача, коли оновлення програми додає нові дозволи; замість того, щоб автоматично оновлювати цю програму, тим самим автоматично надаючи дозвіл, якщо її рівень захисту «нормальний», магазин програм може запитати користувача перед виконанням оновлення. Наразі, якщо користувач не присутній під час автоматичного оновлення, сторонній магазин додатків повинен буде відстежувати сеанс встановлення та запитувати його пізніше. Цей API спрощує цей процес.


Android 14 представить безліч нових функцій і API, коли буде випущено для громадськості пізніше цього року. Хоча ці нові API не приховані, як деякі інші зміни, які ми помітили, немає гарантії, що ці API будуть доступні розробникам у стабільній версії. Це тому, що заморожування API не відбудеться, доки Android 14 не досягне «стабільності платформи» з бета-версією 3 у червні 2023 року, а наразі ми працюємо лише на DP1. Ми стежимо за майбутніми випусками Android 14 DP і бета-версії, щоб побачити, чи ці API залишаться, чи додадуться якісь нові API, які стосуються сторонніх магазинів додатків.