Android 14 se pripravlja, da bo izkušnjo še izboljšal za uporabnike trgovin z aplikacijami tretjih oseb zahvaljujoč novim API-jem.
Google Play je daleč najbolj priljubljena trgovina z aplikacijami med uporabniki Androida, vendar nekateri morda trdijo, da si prvega mesta ni zaslužila pošteno. Google so pod drobnogled vzele regulativne agencije in zakonodajni organi po vsem svetu zaradi kako ohranja svojo prevlado v trgovini z aplikacijami, in ni znakov, da bo ta pritisk kadar koli popustil kmalu. Morda je zato Google prevzel pobudo za uvedbo novih funkcij v Android 14 ki izboljšajo izkušnjo za uporabnike trgovin z aplikacijami tretjih oseb.
Večina trgovin z aplikacijami tretjih oseb v Androidu ni v resnici konkurenčna Googlu Play, in to ne samo zaradi njihove izbire aplikacij. Medtem ko so trgovine z vnaprej nameščenimi aplikacijami prvega proizvajalca vedno imele možnost izvajanja samodejnih posodobitev aplikacij, so trgovine z aplikacijami tretjih oseb šele pred kratkim lahko izvajale nenadzorovane posodobitve. Google je dodal
API v sistemu Android 12 ki trgovinam z aplikacijami tretjih oseb omogoča posodabljanje aplikacij, ne da bi uporabnik potreboval dejanje, s čimer zmanjša trenje z uporabo trgovine z aplikacijami tretje osebe.Vendar pa so zaradi tega trgovine z aplikacijami tretjih oseb še vedno v zelo slabem položaju, ko gre za funkcionalnost, saj niso mogli zlahka vedeti, kdaj varno bi bilo dejansko narediti samodejno posodobitev. To poskuša Google rešiti v sistemu Android 14 z novim API-jem, ki trgovinam z aplikacijami tretjih oseb omogoča izvajanje »nežnih posodobitev«.
Nežne posodobitve
Android 14 je dodal nov API, ki trgovinam z aplikacijami tretjih oseb omogoča preverjanje, ali so izpolnjeni določeni pogoji, preden nadaljujejo s samodejnim posodabljanjem aplikacije. The PackageInstaller. InstallConstraints API »trgovine z aplikacijami ga lahko uporabijo za zagotavljanje samodejnih posodobitev, ne da bi motile uporabniško izkušnjo (imenovano nežna posodobitev) - na primer, trgovina z aplikacijami lahko zadrži posodobitve, ko ugotovi [sic], da aplikacija za posodobitev komunicira z uporabnik."
Ta novi API omogoča trgovinam z aplikacijami tretjih oseb, da preverijo, ali ima aplikacija, ki jo nameravajo posodobiti, aktivno storitev v ospredju (isRequireAppNotForeground), je na nek način v interakciji z uporabnikom (isRequireAppNotInteracting) ali je na zaslonu (isRequireAppNotTopVisible). Trgovine z aplikacijami drugih proizvajalcev lahko tudi preverijo, ali je naprava v načinu dremanja (isRequireDeviceIdle) ali v telefonskem klicu (isRequireNotInCall).
Medtem ko API omogoča določanje pogojev za preverjanje, dokumentacija priporoča uporabo prednastavljenih omejitev, saj »sistem ve najbolje, kako to narediti." To je logično, saj je imel Google dovolj časa, da razvije, kako najbolje obravnavati samodejne posodobitve v lastni trgovini z aplikacijami. Uporaba prednastavitve je prav tako koristna, kot je navedeno v dokumentaciji, saj se lahko natančnost in učinkovitost nežnih posodobitev izboljšata v prihodnjih izdajah, če Google API-ju doda več omejitev.
Vsak pogoj, da PackageInstaller. API InstallConstaints omogoča preverjanje, ki ga je že mogoče preveriti prek obstoječih API-jev, vendar je upravljanje teh preverjanj s sistemom veliko lažje in manj vsiljivo. Na primer, trgovine z aplikacijami tretjih oseb, ki želijo preveriti, ali se aplikacija, ki jo posodabljajo, aktivno uporablja bi moral uporabnik trenutno uporabiti API, kot je UsageStats ali AccessibilityService, oba občutljiva dovoljenja. Če pa uporabljajo ta novi API za Android 14, teh dovoljenj ne bi potrebovali za opravljanje svojega dela.
Posodobite lastništvo
Omogočanje »nežnih posodobitev« ni edina izboljšava v sistemu Android 14 za trgovine z aplikacijami tretjih oseb. Obstaja tudi nov mehanizem »lastništva posodobitev«, ki trgovinam z aplikacijami tretjih oseb omogoča, da postanejo ekskluzivni vir prihodnjih samodejnih posodobitev aplikacije, ki so jo najprej namestili. To pomeni, da če uporabljate trgovino z aplikacijami drugega proizvajalca, ker aplikacije, ki so na voljo v njej, preverja skupnosti, potem nepreverjena posodobitev, ki je na voljo v drugih trgovinah z aplikacijami, ne bo samodejno potisnjena v vašo napravo.
Trenutno, ko namestite aplikacijo prek trgovine z aplikacijami tretje osebe, nič ne preprečuje, da bi trgovina z aplikacijami prve osebe posodobila to aplikacijo. Medtem ko API za nenadzorovane posodobitve Androida 12 trgovinam z aplikacijami tretjih oseb omogoča samo tiho posodabljanje aplikacij, ki so jih najprej namestile, to ne vpliva na trgovine z aplikacijami prvih izdelovalcev, saj imajo privilegirane INSTALL_PACKAGES dovoljenje.
Trgovine z aplikacijami tretjih oseb v sistemu Android 14 lahko uporabljajo novo setRequestUpdateOwnership metoda v PackageInstaller. SessionParams, da bi sistemu povedali, da zahtevajo lastništvo nad posodobitvijo aplikacije, ki jo nameravajo namestiti. Ko je za aplikacijo omogočeno uveljavljanje lastništva posodobitev, morajo vse druge trgovine z aplikacijami – tudi tiste z dovoljenjem INSTALL_PACKAGES – ukrepati s strani uporabnika, da posodobijo aplikacijo. Posodobitev lastništva je mogoče omogočiti samo med prvo namestitvijo aplikacije, torej drugo trgovino z aplikacijami ne bo mogel prevzeti posodobitev, razen če je zadevna aplikacija odstranjena in znova nameščena iz tega trgovina. Trgovine z aplikacijami lahko prek novega InstallSourceInfo#getUpdateOwnerPackageName() API.
Trgovine z aplikacijami tretjih oseb morajo imeti novo ENFORCE_UPDATE_OWNERSHIP dovoljenje za uporabo API-ja za uveljavljanje lastništva pri posodabljanju, vendar glede na to, da ima to dovoljenje raven zaščite »normalno«, ga bo sistem odobril ob času namestitve. Vendar je treba še videti, ali bo Google Play revidiral uporabo tega dovoljenja/API-ja.
Predhodna odobritev namestitve
Zadnji nov API za Android 14, ki sem ga želel izpostaviti, je PackageInstaller. Seja#requestUserPreapproval. Ta API omogoča trgovinam z aplikacijami tretjih oseb, da zahtevajo odobritev uporabnika, preden opravijo namestitveno sejo. Predvidevam, da bo to koristno za trgovine z aplikacijami tretjih oseb, ki želijo namerno pozvati uporabnika, preden posodobijo aplikacijo v ozadju.
Predstavljajte si na primer, da želi trgovina z aplikacijami, osredotočena na varnost, obvestiti svojega uporabnika, ko posodobitev aplikacije doda nova dovoljenja; namesto da bi samodejno posodobil to aplikacijo in s tem samodejno podelil to dovoljenje, če je njena raven zaščite »normalna«, bi lahko trgovina z aplikacijami uporabnika pozvala, preden izvede posodobitev. Če uporabnik med samodejnim posodabljanjem trenutno ni prisoten, bi morala trgovina z aplikacijami drugega proizvajalca slediti namestitveni seji in jih pozneje pozvati. Ta API poenostavi ta postopek.
Android 14 bo uvedel veliko novih funkcij in API-jev, ko bo izdan za javnost pozneje letos. Čeprav ti novi API-ji niso skriti kot nekatere druge spremembe, ki smo jih opazili, ni nobenega zagotovila, da bodo ti API-ji na voljo razvijalcem v stabilni izdaji. To je zato, ker do zamrznitve API-ja ne bo prišlo, dokler Android 14 ne bo dosegel »stabilnost platforme« z beta 3 junija 2023, trenutno pa smo samo na DP1. Pozorni bomo spremljali prihodnje izdaje Android 14 DP in Beta, da bomo videli, ali se bodo ti API-ji ohranili ali ali bodo dodani novi API-ji, ki so pomembni za trgovine z aplikacijami tretjih oseb.