Android 14 se pregătește să îmbunătățească experiența utilizatorilor magazinelor de aplicații terță parte datorită noilor API-uri.
Google Play este de departe cel mai popular magazin de aplicații printre utilizatorii de Android, dar unii ar putea susține că nu și-a câștigat locul în mod corect. Google a fost controlat de agențiile de reglementare și de organismele legislative din întreaga lume din cauza cum își menține dominația în magazinul de aplicații și nu există semne că această presiune se va slăbi oricând curând. Acesta este, probabil, motivul pentru care Google ia inițiativa de a introduce noi funcții în Android 14 care îmbunătățesc experiența utilizatorilor magazinelor de aplicații terțe.
Majoritatea magazinelor de aplicații terță parte de pe Android nu sunt cu adevărat competitive cu Google Play și nu este doar din cauza selecției lor de aplicații. În timp ce magazinele de aplicații de la prima parte, preinstalate au avut întotdeauna capacitatea de a face actualizări automate ale aplicațiilor, magazinele de aplicații de la terțe părți au putut face abia recent actualizări nesupravegheate. Google a adăugat
un API în Android 12 care permite magazinelor de aplicații terță parte să actualizeze aplicațiile fără a necesita acțiunea utilizatorului, reducând frecarea folosind un magazin de aplicații terță parte.Cu toate acestea, acest lucru a lăsat în continuare magazinele de aplicații terță parte într-un dezavantaj major atunci când vine vorba de funcționalitate, deoarece nu puteau ști cu ușurință. când ar fi sigur să faceți efectiv o actualizare automată. Acesta este ceea ce Google încearcă să rezolve în Android 14 cu un nou API care permite magazinelor de aplicații terță parte să efectueze „actualizări blânde”.
Actualizări blânde
Android 14 a adăugat un nou API care permite magazinelor de aplicații terțe să verifice dacă sunt îndeplinite anumite condiții înainte de a continua cu actualizarea automată a unei aplicații. The PackageInstaller. API-ul InstallConstraints „poate fi folosit de magazinele de aplicații pentru a furniza actualizări automate fără a perturba experiența utilizatorului (denumită actualizare blândă) - de exemplu, un magazin de aplicații ar putea suspenda actualizările atunci când constată [sic] că aplicația de actualizat interacționează cu utilizator."
Acest nou API permite magazinelor de aplicații terță parte să verifice dacă o aplicație pe care se pregătesc să o actualizeze are un serviciu activ în prim-plan (isRequireAppNotForeground), interacționează cu utilizatorul într-un fel (isRequireAppNotInteracting) sau este pe ecran (esteRequireAppNotTopVisible). Magazinele de aplicații terță parte pot verifica, de asemenea, dacă dispozitivul este în modul doze (isRequireDeviceIdle) sau într-un apel telefonic (isRequireNotInCall).
În timp ce API-ul permite specificarea condițiilor de verificat, documentația recomandă utilizarea constrângerilor prestabilite, așa cum „sistemul știe cel mai bine cum să o faci.” Acest lucru este logic, având în vedere că Google a avut suficient timp pentru a dezvolta cel mai bun mod de a gestiona actualizările automate în propriul magazin de aplicații. Utilizarea presetării este, de asemenea, benefică, după cum se menționează în documentație, deoarece acuratețea și eficiența actualizărilor blânde pot fi îmbunătățite în versiunile viitoare dacă Google adaugă mai multe constrângeri la API.
Fiecare condiție în care PackageInstaller. API-ul InstallConstaints permite verificarea poate fi deja verificată prin intermediul API-urilor existente, dar ca sistemul să se ocupe de aceste verificări este mult mai ușor și mai puțin intruziv. De exemplu, magazinele de aplicații terță parte care doresc să verifice dacă o aplicație pe care o actualizează este utilizată în mod activ de către utilizator ar trebui în prezent să utilizeze un API precum UsageStats sau AccessibilityService, ambele sensibile permisiuni. Dacă folosesc acest nou API Android 14, totuși, nu ar avea nevoie de aceste permisiuni pentru a-și face treaba.
Actualizați calitatea de proprietar
Activarea „actualizărilor delicate” nu este singura îmbunătățire a Android 14 pentru magazinele de aplicații terță parte. Există, de asemenea, un nou mecanism de „proprietate a actualizării” care permite magazinelor de aplicații terță parte să devină sursa exclusivă a viitoarelor actualizări automate ale unei aplicații pe care au instalat-o pentru prima dată. Aceasta va însemna că, dacă utilizați un magazin de aplicații terță parte, deoarece aplicațiile disponibile prin intermediul acestuia sunt verificate de către comunitate, de exemplu, atunci o actualizare necontrolată care este disponibilă prin alte magazine de aplicații nu va fi trimisă automat la dispozitivul tau.
În acest moment, când instalați o aplicație printr-un magazin de aplicații terță parte, nimic nu împiedică un magazin de aplicații prima parte să actualizeze aplicația respectivă. În timp ce API-ul pentru actualizări nesupravegheate ale Android 12 permite magazinelor de aplicații terțe să actualizeze în tăcere aplicațiile pe care le-au instalat pentru prima dată, magazinele de aplicații primare nu sunt afectate deoarece dețin privilegiul INSTALL_PACKAGES permisiune.
Magazinele de aplicații terță parte pe Android 14 pot folosi noul setRequestUpdateOwnership metoda in PackageInstaller. SessionParams, totuși, pentru a spune sistemului că pretind dreptul de proprietate asupra actualizării asupra aplicației pe care urmează să o instaleze. Odată ce aplicarea proprietății actualizării este activată pentru o aplicație, toate celelalte magazine de aplicații – chiar și cele cu permisiunea INSTALL_PACKAGES – au nevoie de acțiuni din partea utilizatorului pentru a actualiza aplicația. Proprietatea actualizării poate fi activată numai în timpul instalării inițiale a unei aplicații, deci un alt magazin de aplicații nu va putea prelua actualizările decât dacă aplicația în cauză este dezinstalată și reinstalată din aceasta magazin. Magazinele de aplicații pot verifica dacă proprietatea actualizării este activată pentru o aplicație și, dacă da, care aplicație este proprietarul actualizării, prin noul InstallSourceInfo#getUpdateOwnerPackageName() API.
Magazinele de aplicații terță parte trebuie să dețină noul ENFORCE_UPDATE_OWNERSHIP permisiunea de a utiliza API-ul de aplicare a proprietății actualizării, dar având în vedere că această permisiune are un nivel de protecție „normal”, va fi acordată de sistem în momentul instalării. Cu toate acestea, rămâne de văzut dacă Google Play va audita utilizarea acestei permisiuni/API.
Instalați aprobarea prealabilă
Ultimul nou API Android 14 pe care am vrut să îl evidențiez este PackageInstaller. Session#requestUserPreapproval. Acest API permite magazinelor de aplicații terțe să solicite aprobarea utilizatorului înainte de a efectua o sesiune de instalare. Îmi imaginez că acest lucru va fi util pentru magazinele de aplicații terțe care doresc în mod intenționat să solicite utilizatorului înainte de a actualiza o aplicație în fundal.
De exemplu, imaginați-vă că un magazin de aplicații axat pe securitate dorește să-și informeze utilizatorul când o actualizare a aplicației adaugă noi permisiuni; în loc să actualizeze automat aplicația respectivă, acordând astfel automat această permisiune dacă nivelul său de protecție este „normal”, magazinul de aplicații ar putea solicita utilizatorului înainte de a face actualizarea. În prezent, dacă un utilizator nu este prezent în timpul unei actualizări automate, magazinul de aplicații terță parte ar trebui să țină evidența sesiunii de instalare și să îi solicite mai târziu. Acest API simplifică acest proces.
Android 14 va introduce o mulțime de funcții și API-uri noi când va fi lansat public mai târziu în acest an. Deși aceste noi API-uri nu sunt ascunse ca unele dintre celelalte modificări pe care le-am observat, nu există nicio garanție că aceste API-uri vor fi disponibile pentru dezvoltatori în versiunea stabilă. Asta pentru că înghețarea API-ului nu va avea loc până când Android 14 va atinge „stabilitatea platformei” cu Beta 3 în iunie 2023, iar momentan suntem doar pe DP1. Vom fi cu ochii pe viitoarele versiuni Android 14 DP și Beta pentru a vedea dacă aceste API-uri rămân sau dacă sunt adăugate noi API-uri relevante pentru magazinele de aplicații terță parte.