Android 14 bereidt zich voor om de ervaring nog beter te maken voor gebruikers van app-winkels van derden dankzij nieuwe API's.
Google Play is verreweg de meest populaire app store onder Android-gebruikers, maar sommigen zullen misschien beweren dat het zijn toppositie niet eerlijk heeft verdiend. Google is onderzocht door regelgevende instanties en wetgevende instanties over de hele wereld vanwege hoe het zijn dominantie in de app store behoudt, en er zijn geen tekenen dat deze druk op elk moment zal afnemen spoedig. Dat is misschien de reden waarom Google het initiatief neemt om nieuwe functies in te introduceren Android 14 die de ervaring verbeteren voor gebruikers van app-winkels van derden.
De meeste app-winkels van derden op Android zijn niet echt concurrerend met Google Play, en dat komt niet alleen door hun app-selectie. Terwijl first-party, vooraf geïnstalleerde app-winkels altijd de mogelijkheid hebben gehad om automatische app-updates uit te voeren, kunnen app-winkels van derden pas sinds kort onbeheerde updates uitvoeren. Google toegevoegd
een API in Android 12 waarmee app-winkels van derden apps kunnen updaten zonder actie van de gebruiker, waardoor de wrijving wordt verminderd met behulp van een app store van derden.Dit zorgde er echter nog steeds voor dat app-winkels van derden een groot nadeel hadden als het gaat om functionaliteit, omdat ze het niet gemakkelijk konden weten wanneer het zou veilig zijn om daadwerkelijk een automatische update uit te voeren. Dat is wat Google in Android 14 probeert op te lossen met een nieuwe API waarmee app-winkels van derden "zachte updates" kunnen uitvoeren.
Zachte updates
Android 14 heeft een nieuwe API toegevoegd waarmee app-winkels van derden kunnen controleren of aan bepaalde voorwaarden is voldaan voordat ze doorgaan met het automatisch updaten van een app. De Pakket installateur. InstallConstraints-API "kan worden gebruikt door app-winkels om automatische updates te leveren zonder de gebruikerservaring te verstoren (aangeduid als zachte update) - een app-winkel kan bijvoorbeeld updates uitstellen wanneer ontdekt [sic] dat de bij te werken app interactie heeft met de gebruiker."
Met deze nieuwe API kunnen app-winkels van derden controleren of een app die ze willen updaten een actieve voorgrondservice heeft (isRequireAppNotForeground), heeft op de een of andere manier interactie met de gebruiker (isRequireAppNotInteracting) of wordt op het scherm weergegeven (isRequireAppNotTopVisible). Appstores van derden kunnen ook controleren of het apparaat in de slaapstand staat (isRequireDeviceIdle) of in gesprek is (isRequireNotInCall).
Hoewel de API het mogelijk maakt om te specificeren welke voorwaarden moeten worden gecontroleerd, raadt de documentatie aan om de vooraf ingestelde beperkingen te gebruiken, aangezien het "systeem weet beste manier om het te doen.” Dit is logisch aangezien Google voldoende tijd heeft gehad om te ontwikkelen hoe automatische updates in de eigen app store het beste kunnen worden afgehandeld. Het gebruik van de voorinstelling is ook nuttig, zoals opgemerkt in de documentatie, aangezien de nauwkeurigheid en efficiëntie van zachte updates in toekomstige releases kan worden verbeterd als Google meer beperkingen aan de API toevoegt.
Elke voorwaarde dat de PackageInstaller. Met de InstallConstaints API kan controle al worden gecontroleerd via bestaande API's, maar het systeem deze controles laten afhandelen is veel eenvoudiger en minder opdringerig. Bijvoorbeeld app-winkels van derden die willen controleren of een app die ze updaten actief wordt gebruikt door de gebruiker zou momenteel een API zoals UsageStats of AccessibilityService moeten gebruiken, beide gevoelig rechten. Als ze echter deze nieuwe Android 14 API gebruiken, hebben ze deze machtigingen niet nodig om hun werk te doen.
Eigendom updaten
Het inschakelen van "zachte updates" is niet de enige verbetering in Android 14 voor app-winkels van derden. Er is ook een nieuw mechanisme voor 'update-eigendom' waarmee app-winkels van derden de exclusieve bron kunnen worden van toekomstige automatische updates voor een app die ze voor het eerst hebben geïnstalleerd. Dit betekent dat als u een app-winkel van derden gebruikt, omdat de apps die via deze winkel beschikbaar zijn, zijn doorgelicht door de community, dan wordt een niet-gecontroleerde update die beschikbaar is via andere app-winkels niet automatisch gepusht Je toestel.
Op dit moment, wanneer u een app installeert via een app-winkel van derden, is er niets dat een app-winkel van derden belet die app bij te werken. Hoewel de onbeheerde updates-API van Android 12 app-stores van derden alleen in staat stelt om apps die ze eerst hebben geïnstalleerd geruisloos te updaten, worden app-stores van de eerste partij niet beïnvloed, aangezien zij de bevoorrechte INSTALL_PAKKETTEN toestemming.
App-winkels van derden op Android 14 kunnen het nieuwe gebruiken setRequestUpdateOwnership methode in Pakket installateur. SessieParams, echter om het systeem te laten weten dat ze het update-eigendom claimen van de app die ze gaan installeren. Zodra afdwinging van update-eigendom is ingeschakeld voor een app, hebben alle andere app-stores, zelfs die met de machtiging INSTALL_PACKAGES, actie van de gebruiker nodig om de app bij te werken. Eigendom bijwerken kan alleen worden ingeschakeld tijdens de eerste installatie van een app, dus een andere app store kan geen updates overnemen, tenzij de app in kwestie wordt verwijderd en opnieuw wordt geïnstalleerd winkel. App-winkels kunnen controleren of update-eigendom is ingeschakeld voor een app, en zo ja, welke app de update-eigenaar is, via de nieuwe InstallSourceInfo#getUpdateOwnerPackageName() API.
App-winkels van derden moeten het nieuwe bevatten ENFORCE_UPDATE_OWNERSHIP toestemming om de bijgewerkte eigendomshandhavings-API te gebruiken, maar aangezien deze toestemming een beschermingsniveau van "normaal" heeft, wordt deze tijdens de installatie door het systeem verleend. Het valt echter nog te bezien of Google Play het gebruik van deze toestemming/API zal controleren.
Voorafgaande goedkeuring installeren
De laatste nieuwe Android 14 API die ik wilde benadrukken is Pakket installateur. Sessie#requestUserPreapproval. Met deze API kunnen app-winkels van derden de goedkeuring van de gebruiker vragen voordat ze een installatiesessie vastleggen. Ik kan me voorstellen dat dit handig zal zijn voor app-winkels van derden die de gebruiker opzettelijk willen vragen voordat ze een app op de achtergrond updaten.
Stel je bijvoorbeeld voor dat een op beveiliging gerichte app store zijn gebruiker wil laten weten wanneer een app-update nieuwe machtigingen toevoegt; in plaats van die app automatisch bij te werken, waardoor die toestemming automatisch wordt verleend als het beschermingsniveau "normaal" is, kan de app store de gebruiker vragen voordat de update wordt uitgevoerd. Als een gebruiker momenteel niet aanwezig is tijdens een automatische update, moet de app store van derden de installatiesessie bijhouden en later vragen. Deze API vereenvoudigt dat proces.
Android 14 zal tal van nieuwe functies en API's introduceren wanneer het later dit jaar voor het publiek wordt vrijgegeven. Hoewel deze nieuwe API's niet verborgen zijn zoals sommige van de andere wijzigingen die we hebben gezien, is er geen garantie dat deze API's beschikbaar zullen zijn voor ontwikkelaars in de stabiele release. Dat komt omdat de API-bevriezing pas zal plaatsvinden als Android 14 in juni 2023 "platformstabiliteit" bereikt met Beta 3, en we zitten momenteel alleen in DP1. We houden toekomstige Android 14 DP- en bèta-releases in de gaten om te zien of deze API's blijven bestaan of dat er nieuwe API's worden toegevoegd die relevant zijn voor app-winkels van derden.