
Le app Android sono state storicamente distribuite come APK (Pacchetti Android). Un APK contiene una versione compilata di un'app, insieme a risorse multimediali critiche come icone e suoni. Includono anche un file manifest, che fornisce informazioni sull'app al sistema Android e una serie di certificati e chiavi di firma che verificano l'identità dell'editore.
Nel maggio 2018, Google ha lanciato un nuovo pacchetto di app formato destinato ad affrontare alcune delle carenze con gli APK. Gli Android App Bundle (AAB) svolgono lo stesso ruolo degli APK ma con significative differenze di implementazione.
Al Google I/O 2021, Google ha annunciato che AAB diventerà il formato predefinito dell'app Android. Dalla fine di agosto, il Play Store richiederà l'invio di nuove pubblicazioni di app come AAB. Gli utenti finali che utilizzano solo il Play Store non dovranno fare nulla. Per gli sviluppatori, la storia è un po' più complicata.
Vantaggi dell'App Bundle
AAB è stato originariamente introdotto come un modo per risolvere alcune delle comuni sfide di packaging nell'ecosistema Android. Android funziona su migliaia di dispositivi che coprono una vasta gamma di dimensioni dello schermo, linee di base delle prestazioni e architetture della CPU. Il formato APK non è scalabile per soddisfare questa diversità in quanto ogni pacchetto contiene tutte le risorse dell'app.
Se installi un'app sul telefono, non hai davvero bisogno per scaricare le varianti tablet ad alta risoluzione della sua grafica. Tuttavia, con l'APK, normalmente otterrai ogni variazione, causando download più grandi e un maggiore utilizzo dello spazio di archiviazione. Se uno sviluppatore desidera offrire build più snelle, deve compilare e firmare manualmente più APK diversi.
Pubblicità
Gli app bundle adottano un approccio diverso. In base alla progettazione, “raggruppano” diverse versioni di un'app in un unico pacchetto logico. Il Play Store invia quindi solo i bit rilevanti a ciascun dispositivo che richiede un'installazione. Produrrà il pacchetto giusto su richiesta per ogni utente, quindi un utente americano con un dispositivo Intel da 10 pollici riceverà un download diverso da un individuo tedesco con un telefono ARM da 5 pollici. Fondamentalmente, i dispositivi continuano a ricevere APK – gli utenti non interagiranno mai direttamente con un pacchetto di app. La differenza è che gli APK vengono generati dinamicamente, nel cloud.
Gli app bundle beneficiano anche di un caricamento più semplice dei moduli aggiuntivi e di un supporto avanzato per risorse di grandi dimensioni come i contenuti di gioco. Secondo Google, tutto ciò si traduce in genere in una riduzione del 15% delle dimensioni del download, rispetto alla stessa app distribuita come APK.
What’ sta cambiando per gli APK?
Google eliminerà gradualmente il supporto per gli APK a partire da agosto 2021. Le nuove app inviate al Play Store dovranno essere rilasciate come app bundle. Le app esistenti basate su APK continueranno a essere supportate e gli sviluppatori potranno continuare a rilasciare aggiornamenti. Queste app sono descritte come “attualmente esenti,” suggerendo che in futuro potrebbe essere necessario rilasciare aggiornamenti come AAB.
Secondo Google, la modifica è stata apportata in modo che più utenti possano beneficiare dei vantaggi dell'App Bundle. Dal punto di vista di un tipico utente finale, è difficile discutere con la promessa degli App Bundle: download più piccoli e spazio di archiviazione ridotto saranno apprezzati da molti, in particolare quelli su dispositivi di fascia bassa e connessioni Internet lente.
Gli utenti di versioni precedenti di Android non vedranno i vantaggi poiché il loro dispositivo non sarà in grado di assemblare “split” raggruppa in un'app funzionante. Le versioni obsolete del sistema operativo potranno comunque installare app App Bundle dal Play Store anche se – il sistema di raggruppamento realizzerà che sta gestendo un dispositivo più vecchio e servirà invece un normale APK all-in-one.
E gli svantaggi?
Anche se i vantaggi principali sono indubbi, gli App Bundle presentano uno svantaggio significativo sia per gli sviluppatori che per gli utenti esperti. Poiché il sistema App Bundle è incentrato sulla generazione dinamica in-cloud di APK firmati, gli sviluppatori devono consegnare le chiavi di firma dell'app a Google. Invece di firmare gli aggiornamenti dell'app nella propria infrastruttura di build, Google prenderà un pacchetto di app e lo convertirà in APK firmati.
Pubblicità
Il processo di firma consente ai dispositivi Android di verificare che gli aggiornamenti provengano dallo stesso editore dell'app attualmente installata. È una parte fondamentale dell'ecosistema che impedisce ai malintenzionati di produrre app dannose che sovrascrivono silenziosamente i download autentici. Google promette che gli sviluppatori saranno in grado di fornire le proprie chiavi, ma dovranno comunque essere conservate nel Play Store.
Affidarsi a Google per l'archiviazione delle chiavi di firma offre all'azienda un controllo ancora maggiore sulla distribuzione delle app Android. Chiunque abbia compromesso con successo il Play Store potrebbe iniziare a pubblicare gli aggiornamenti delle app negli account degli sviluppatori, poiché tutte le chiavi di firma saranno centralizzate nell'infrastruttura di Google.
Inoltre, Google potrebbe ora pubblicare autonomamente gli aggiornamenti delle app, forse se un governo lo obbligasse a farlo. Ha già la possibilità di installare app silenziosamente su dispositivi Android. Ora detiene le chiavi dei regni degli sviluppatori, potrebbe soddisfare le richieste di installare di nascosto aggiornamenti non approvati delle app esistenti.
Un'agenzia governativa potrebbe convincere Google a installare un'app di messaggistica crittografata modificata sul dispositivo di un utente di destinazione? Tale richiesta potrebbe consentire all'agenzia di intercettare i messaggi, senza che l'obiettivo ne sia il più saggio. Gli app bundle e la firma in hosting rendono lo scenario teoricamente possibile.
Il rischio è presumibilmente mitigato da una “trasparenza del codice” sistema. Questo ha lo scopo di offrire agli sviluppatori e agli utenti finali un modo per verificare che gli APK scaricati corrispondano al bundle che è stato inviato al Play Store, eliminando la possibilità di intrusione.
Android in realtà non controlla la trasparenza del codice firme, quindi spetta alla comunità costruire strumenti attorno ad esso. Inoltre, la trasparenza del codice è del tutto facoltativa e abilitata solo quando l'APK include un file di trasparenza. Poiché Google possiede già le chiavi necessarie per generare nuovi APK, potrebbe rimuovere il file di trasparenza del codice ogni volta che lo desidera.
App Bundle e App Store di terze parti
Gli App Bundle sono anche una minaccia per la natura aperta dell'ecosistema Android. Negli ultimi anni, Google ha affermato un ruolo di stewardship più forte. Gli App Bundle sono un altro colpo agli app store di terze parti che offrono download diretti di APK.
Pubblicità
Poiché ora gli sviluppatori dovranno compilare app bundle, le build APK vengono messe da parte. Potrebbe essere solo questione di tempo prima che Google disabiliti del tutto l'installazione diretta dell'APK o rimuova le funzionalità di compilazione dell'APK dalle versioni ufficiali di Android Studio.
Per il momento, gli sviluppatori potranno scaricare APK autonomi firmati dal Play Store, dopo aver inviato gli App Bundle. Questi APK saranno pronti per essere caricati su app store di terze parti, quindi non ci sono rischi immediati per questo modello di distribuzione. È ancora un inconveniente per gli sviluppatori anche se – devi scaricare manualmente gli APK firmati o crearli separatamente sul tuo computer locale.
Google ha annunciato il passaggio obbligatorio agli App Bundle pochi giorni dopo che Microsoft ha presentato Windows 11 con il supporto per le app Android dall'Amazon App Store. Sebbene il passaggio agli App Bundle sia stato necessario per un paio d'anni, la decisione di Google di fare il passaggio ora potrebbe essere intesa a limitare l'impatto della partnership Microsoft/Amazon, che supporterà solo APK regolari.
Conclusione
Gli Android App Bundle sono un nuovo formato di compilazione di app con un'efficienza molto maggiore rispetto a un normale APK. Anche se i dispositivi alla fine riceveranno comunque un APK, ciascuno di essi sarà adattato specificamente alla versione del sistema operativo, al fattore di forma del dispositivo e alle impostazioni internazionali attive.
Anche se gli App Bundle dovrebbero essere apprezzati dalla maggior parte degli utenti Android, non sono un soluzione perfetta per gli sviluppatori e il più ampio ecosistema Android. Il modello App Bundle conferisce a Google un maggiore controllo sulla distribuzione delle app, richiedendo la divulgazione di chiavi di firma che potrebbero rendere realtà gli aggiornamenti forzati delle app, minacciando le vetrine di terze parti.