Android 14 aggiunge nuove funzionalità per far funzionare ancora meglio gli app store di terze parti

Android 14 si prepara a rendere l'esperienza ancora migliore per gli utenti di app store di terze parti grazie alle nuove API.

Google Play è di gran lunga l'app store più popolare tra gli utenti Android, ma alcuni potrebbero obiettare che non ha guadagnato il primo posto in modo equo. Google è stato esaminato attentamente dalle agenzie di regolamentazione e dagli organi legislativi di tutto il mondo a causa di come mantiene il suo dominio sull'app store e non ci sono segni che questa pressione si allenterà in qualsiasi momento Presto. Questo è forse il motivo per cui Google sta prendendo l'iniziativa di introdurre nuove funzionalità Androide 14 che migliorano l'esperienza per gli utenti di app store di terze parti.

La maggior parte degli app store di terze parti su Android non è realmente competitiva con Google Play e non è solo per la loro selezione di app. Mentre gli app store preinstallati di prima parte hanno sempre avuto la possibilità di eseguire aggiornamenti automatici delle app, gli app store di terze parti sono stati solo di recente in grado di eseguire aggiornamenti automatici. Google ha aggiunto

un'API in Android 12 che consente agli app store di terze parti di aggiornare le app senza richiedere l'intervento dell'utente, riducendo l'attrito di utilizzando un app store di terze parti.

Tuttavia, ciò lasciava ancora gli app store di terze parti in grave svantaggio quando si trattava di funzionalità, perché non potevano facilmente saperlo Quando sarebbe sicuro eseguire effettivamente un aggiornamento automatico. Questo è ciò che Google sta cercando di risolvere in Android 14 con una nuova API che consente agli app store di terze parti di eseguire "aggiornamenti delicati".

Aggiornamenti delicati

Android 14 ha aggiunto una nuova API che consente agli app store di terze parti di verificare se determinate condizioni sono soddisfatte prima di procedere con l'aggiornamento automatico di un'app. IL PackageInstaller. API InstallConstraints "può essere utilizzato dagli app store per fornire aggiornamenti automatici senza interrompere l'esperienza dell'utente (indicato come aggiornamento delicato) - ad esempio, un app store potrebbe sospendere gli aggiornamenti quando scopre [sic] che l'app da aggiornare sta interagendo con il utente."

Questa nuova API consente agli app store di terze parti di verificare se un'app che si stanno preparando ad aggiornare ha un servizio in primo piano attivo (isRequireAppNotForeground), sta interagendo con l'utente in qualche modo (isRequireAppNotInteracting) o è sullo schermo (isRequireAppNotTopVisible). Gli app store di terze parti possono anche verificare se il dispositivo è in modalità doze (isRequireDeviceIdle) o durante una telefonata (isRequireNotInCall).

Sebbene l'API consenta di specificare quali condizioni verificare, la documentazione consiglia di utilizzare i vincoli preimpostati come "il sistema sa meglio come farlo. Ciò è logico dato che Google ha avuto tutto il tempo per sviluppare il modo migliore per gestire gli aggiornamenti automatici nel proprio app store. Anche l'utilizzo del preset è vantaggioso, come notato dalla documentazione, poiché l'accuratezza e l'efficienza degli aggiornamenti delicati potrebbero essere migliorate nelle versioni future se Google aggiunge ulteriori vincoli all'API.

Ogni condizione che PackageInstaller. L'API InstallConstaints abilita il controllo può già essere verificato tramite le API esistenti, ma fare in modo che il sistema gestisca questi controlli è molto più semplice e meno invadente. Ad esempio, app store di terze parti che desiderano verificare se un'app che stanno aggiornando viene utilizzata attivamente dall'utente dovrebbe attualmente utilizzare un'API come UsageStats o AccessibilityService, entrambe sensibili autorizzazioni. Se utilizzano questa nuova API di Android 14, tuttavia, non avrebbero bisogno di queste autorizzazioni per svolgere il proprio lavoro.

Aggiorna la proprietà

L'abilitazione degli "aggiornamenti delicati" non è l'unico miglioramento di Android 14 per gli app store di terze parti. C'è anche un nuovo meccanismo di "proprietà degli aggiornamenti" che consente agli app store di terze parti di diventare la fonte esclusiva di futuri aggiornamenti automatici a un'app che hanno installato per la prima volta. Ciò significa che se stai utilizzando un app store di terze parti perché le app disponibili tramite esso sono controllate dal community, ad esempio, un aggiornamento non controllato disponibile tramite altri app store non verrà inviato automaticamente a il tuo dispositivo.

In questo momento, quando installi un'app tramite un app store di terze parti, nulla impedisce a un app store proprietario di aggiornare quell'app. Mentre l'API degli aggiornamenti automatici di Android 12 consente solo agli app store di terze parti di aggiornare silenziosamente le app installate per la prima volta, gli app store proprietari non sono interessati poiché detengono i privilegi PACCHETTI_INSTALL autorizzazione.

Gli app store di terze parti su Android 14 possono utilizzare il nuovo setRequestUpdateProprietà metodo dentro PackageInstaller. SessionParams, tuttavia, per comunicare al sistema che stanno rivendicando la proprietà dell'aggiornamento sull'app che stanno per installare. Una volta abilitata l'imposizione della proprietà dell'aggiornamento per un'app, tutti gli altri app store, anche quelli con l'autorizzazione INSTALL_PACKAGES, richiedono l'intervento dell'utente per aggiornare l'app. La proprietà dell'aggiornamento può essere abilitata solo durante l'installazione iniziale di un'app, quindi un altro app store non sarà in grado di rilevare gli aggiornamenti a meno che l'app in questione non venga disinstallata e reinstallata da quella negozio. Gli app store possono verificare se la proprietà dell'aggiornamento è abilitata per un'app e, in tal caso, quale app è il proprietario dell'aggiornamento, tramite il nuovo InstallSourceInfo#getUpdateOwnerPackageName() API.

Gli app store di terze parti devono contenere il nuovo ENFORCE_UPDATE_OWNERSHIP l'autorizzazione per utilizzare l'API di applicazione della proprietà dell'aggiornamento, ma poiché questa autorizzazione ha un livello di protezione "normale", verrà concessa dal sistema al momento dell'installazione. Tuttavia, resta da vedere se Google Play controllerà l'uso di questa autorizzazione/API.

Installa la pre-approvazione

L'ultima nuova API di Android 14 che volevo evidenziare è PackageInstaller. Sessione#requestUserPreapproval. Questa API consente agli app store di terze parti di richiedere l'approvazione dell'utente prima di eseguire il commit di una sessione di installazione. Immagino che questo sarà utile per gli app store di terze parti che desiderano intenzionalmente richiedere all'utente prima di aggiornare un'app in background.

Ad esempio, immagina che un app store incentrato sulla sicurezza desideri informare l'utente quando un aggiornamento dell'app aggiunge nuove autorizzazioni; invece di aggiornare automaticamente quell'app, concedendo così automaticamente tale autorizzazione se il suo livello di protezione è "normale", l'app store potrebbe richiedere all'utente prima di eseguire l'aggiornamento. Attualmente, se un utente non è presente durante un aggiornamento automatico, l'app store di terze parti dovrebbe tenere traccia della sessione di installazione e richiederlo successivamente. Questa API semplifica tale processo.


Android 14 introdurrà un sacco di nuove funzionalità e API quando verrà rilasciato al pubblico entro la fine dell'anno. Sebbene queste nuove API non siano nascoste come alcune delle altre modifiche che abbiamo individuato, non vi è alcuna garanzia che queste API saranno disponibili per gli sviluppatori nella versione stabile. Questo perché il blocco dell'API non avverrà fino a quando Android 14 non raggiungerà la "stabilità della piattaforma" con la Beta 3 nel giugno 2023 e al momento siamo solo su DP1. Terremo d'occhio le future versioni di Android 14 DP e Beta per vedere se queste API rimangono o se vengono aggiunte nuove API rilevanti per gli app store di terze parti.