Share via


Installazione di Xamarin.Android come app di sistema

Questa guida illustra le differenze tra un'app di sistema e un'app utente e spiega come installare un'applicazione Xamarin.Android come applicazione di sistema. Questa guida è rivolta agli autori di immagini ROM Android personalizzate. Non illustra come creare una ROM personalizzata.

App di sistema

Gli autori di immagini ROM Android personalizzate o i produttori di dispositivi Android possono aver bisogno di includere un'applicazione Xamarin.Android come app di sistema quando distribuiscono una ROM o un dispositivo. Un'app di sistema è un'app considerata importante per il funzionamento del dispositivo o che fornisce la funzionalità che per l'autore della ROM personalizzata deve essere sempre disponibile.

Le app di sistema vengono installate nella cartella /system/app/ (una directory di sola lettura nel file system) e non possono essere eliminate o spostate dall'utente a meno che non abbia l'accesso radice. Un'applicazione installata dall'utente (in genere da Google Play o tramite sideload dell'app) è invece nota come app utente. Le app utente possono essere eliminate dall'utente e, in molti casi, spostate in una posizione diversa sul dispositivo (ad esempio, alcuni tipi di risorse di archiviazione esterne).

Le app di sistema si comportano esattamente come le app utente, ma con le importanti eccezioni seguenti:

  • Le app di sistema possono essere aggiornate come una normale app utente, ma, poiché esiste sempre una copia dell'app in /system/app/, è sempre possibile eseguire il rollback dell'applicazione alla versione originale.

  • Alle app di sistema possono essere concesse alcune autorizzazioni solo di sistema non disponibili per un'app utente. Un esempio di autorizzazione solo di sistema è BLUETOOTH_PRIVILEGED, che consente di associare le applicazioni ai dispositivi Bluetooth senza interazione dell'utente.

È possibile distribuire un'app Xamarin.Android come applicazione di sistema. Oltre a fornire un APK alla ROM personalizzata, è necessario copiare manualmente due librerie condivise, libmonodroid.so e libmonosgen-2.0.so, dall'APK al file system dell'immagine ROM. Questa guida illustra i passaggi necessari.

Restrizioni

Questa guida è rivolta agli autori di immagini ROM Android personalizzate. Non illustra come creare una ROM personalizzata.

Questa guida presuppone familiarità con la creazione del pacchetto della versione finale di un APK per Xamarin.Android e la conoscenza delle architetture CPU per le applicazioni Android.

Installare un'app Xamarin.Android come app di sistema

I passaggi seguenti illustrano come installare un'app Xamarin.Android come app di sistema.

  1. Creare un pacchetto APK di versione dell'app Xamarin.Android: questo è descritto in modo più dettagliato nella Guida alla pubblicazione di un'applicazione .

  2. Estrarre le librerie condivise dal file APK : usando qualsiasi programma di utilità ZIP, aprire il file APK ed esaminare il contenuto della cartella /lib/ . Questa cartella avrà una sottodirectory per ogni interfaccia binaria dell'applicazione (ABI) supportata dall'applicazione. Il contenuto di questa cartella includerà tutte le librerie condivise richieste dall'app in una particolare ABI:

    Screenshot of .so files in the armeabi-v7a folder of taskypro.zip

    Nello screenshot precedente è presente una sola ABI supportata (armeabi-v7a) che contiene i due file SO richiesti dall'app. Si noti che è necessario estrarre solo i file ABI appropriati per il dispositivo o per l'architettura di destinazione della ROM del dispositivo. Non copiare quindi i file SO dalla cartella x86 a una ROM o un dispositivo armeabi-v7a.

  3. Copiare i file con estensione so in /system/lib: copiare i file con estensione so estratti dall'APK nel passaggio precedente nella cartella /system/lib/ nella ROM personalizzata.

  4. Copiare il file APK in /system/app : il passaggio finale consiste nel copiare il file APK nella cartella /system/app nel ROM.

Riepilogo

Questa guida ha illustrato la differenza tra un'app di sistema e un'app utente e ha spiegato come installare un'applicazione Xamarin.Android come app di sistema.