Cos’è un installatore di pacchetti Android?

PackageInstaller

public class PackageInstaller
extends Object

http://android.content.pm.PackageInstaller

Offre la possibilità di installare, aggiornare e rimuovere applicazioni sul dispositivo. Questo include il supporto per le applicazioni confezionate sia come un singolo APK "monolitico", o le applicazioni confezionate come APK multipli "divisi".

Un'applicazione viene consegnata per l'installazione attraverso unaPackageInstaller.Session, che qualsiasi applicazione può creare. Una volta che la sessione è creata, l'installatore può trasmettere uno o più APK sul posto finché non decide di impegnare o distruggere la sessione. Il commit può richiedere l'intervento dell'utente per completare l'installazione.

Le sessioni possono installare applicazioni nuove di zecca, aggiornare applicazioni esistenti, o aggiungere nuovi split in un'applicazione esistente.

Le applicazioni confezionate come APK multipli split consistono sempre in un singolo APK "base" (con un nome split nullo) e zero o più APK "split" (con nomi split unici). Qualsiasi sottoinsieme di questi APK può essere installato insieme, purché siano rispettati i seguenti vincoli:

  • Tutti gli APK devono avere lo stesso nome del pacchetto, il codice della versione e i certificati di firma.
  • Tutti gli APK devono avere un unico nome di divisione.
  • Tutte le installazioni devono contenere un unico APK di base.

Il progetto ApiDemos contiene esempi di utilizzo di questa API:ApiDemos/src/com/example/android/apis/content/InstallApk*.java.