Installieren von Xamarin.Android als System-App

In diesem Leitfaden werden die Unterschiede zwischen einer System-App und einer Benutzer-App erläutert und wie eine Xamarin.Android-Anwendung als Systemanwendung installiert werden kann. Dieser Leitfaden ist für Autoren von benutzerdefinierten Android ROM-Images vorgesehen. Es wird nicht erläutert, wie ein benutzerdefiniertes ROM-Image erstellt wird.

System-App

Autoren benutzerdefinierter Android ROM-Images oder Hersteller von Android-Geräten möchten vielleicht eine Xamarin.Android-Anwendung als System-App einschließen, wenn Sie einen ROM-Speicher oder ein Gerät verteilen. Bei einer System-App handelt es sich um eine App, die für das Funktionieren des Geräts bzw. für die Bereitstellung von Funktionen vorgesehen ist, die der Autor von benutzerdefinierten ROMs immer zur Verfügung haben möchte.

System-Apps werden im Ordner /system/app/ installiert (ein schreibgeschütztes Verzeichnis im Dateisystem) und können weder vom Benutzer gelöscht noch verschoben werden, es sei denn, der Benutzer verfügt über Stammzugriff. Im Gegensatz dazu wird eine Anwendung, die vom Benutzer installiert wird (in der Regel über Google Play oder durch Querladen der App) als Benutzer-App bezeichnet. Benutzer-Apps können vom Benutzer gelöscht und in vielen Fällen an einen anderen Speicherort auf dem Gerät verschoben werden (beispielsweise in einen externen Speicher).

System-Apps verhalten sich genauso wie Benutzer-Apps, unterscheiden sich jedoch in folgenden wichtigen Punkten:

  • Für System-Apps kann wie bei normalen Benutzer-Apps auch ein Upgrade durchgeführt werden. Da jedoch immer eine Kopie der App unter /system/app/ vorhanden ist, ist es immer möglich, ein Rollback auf die ursprüngliche Version der Anwendung durchzuführen.

  • System-Apps können bestimmte, nur auf das System bezogene Berechtigungen erhalten, die für eine Benutzer-App nicht zur Verfügung stehen. Ein Beispiel für eine „Nur-System“-Berechtigung ist BLUETOOTH_PRIVILEGED, wodurch sich Anwendungen mit Bluetooth-Geräten ohne zusätzliche Benutzerinteraktion koppeln können.

Es ist möglich, eine Xamarin.Android-App als Systemanwendung zu verteilen. Zusätzlich zur Bereitstellung eines Android-Anwendungspakets auf dem benutzerdefinierten ROM gibt es zwei freigegebene Bibliotheken, libmonodroid.so und libmonosgen-2.0.so, die manuell vom APK zum Dateisystem des ROM-Images kopiert werden müssen. In diesem Leitfaden werden die Schritte erläutert.

Beschränkungen

Dieser Leitfaden ist für Autoren von benutzerdefinierten Android ROM-Images vorgesehen. Es wird nicht erläutert, wie ein benutzerdefiniertes ROM-Image erstellt wird.

In diesem Leitfaden werden Kenntnisse zum Packen eines Release-APK für eine Xamarin.Android-Anwendung und grundlegendes Verständnis der CPU-Architektur für Android-Anwendungen vorausgesetzt.

Installieren einer Xamarin.Android-App als System-App

Die folgenden Schritte beschreiben, wie eine Xamarin.Android-App als System-App installiert wird.

  1. Packen sie eine APK-Version der Xamarin.Android-App : Dies wird im Leitfaden zum Veröffentlichen einer Anwendung ausführlicher beschrieben.

  2. Extrahieren von freigegebenen Bibliotheken aus dem APK : Öffnen Sie mithilfe eines beliebigen ZIP-Hilfsprogramms die APK-Datei, und untersuchen Sie den Inhalt des Ordners /lib/ . Dieser Ordner enthält dann ein Unterverzeichnis für jede Anwendungsbinärdatei-Schnittstelle (ABI), die von der Anwendung unterstützt wird. Die Inhalte dieses Ordners enthalten alle freigegebenen Bibliotheken, die von der App auf dieser bestimmten ABI benötigt werden:

    Screenshot: SO-Dateien im Ordner armeabi-v7a von taskypro.zip

    Im obigen Screenshot sehen Sie nur eine unterstützte ABI, (armeabi-v7a), die die zwei SO-Dateien enthält, die von der App benötigt werden. Beachten Sie, dass nur die ABI-Dateien, die für das Gerät oder die Zielarchitektur des Geräte-ROM geeignet sind, extrahiert werden müssen. Kopieren Sie also keine SO-Dateien aus dem x86-Ordner auf ein armeabi-v7a-Gerät oder -ROM.

  3. .so-Dateien in /system/lib kopieren: Kopieren Sie die SO-Dateien , die im vorherigen Schritt aus dem APK extrahiert wurden, in den Ordner /system/lib/ auf dem benutzerdefinierten ROM.

  4. Kopieren Sie die APK-Datei nach /system/app – Der letzte Schritt besteht darin, die APK-Datei in den Ordner /system/app auf dem ROM zu kopieren.

Zusammenfassung

In diesem Leitfaden wurden die Unterschiede zwischen einer System-App und einer Benutzer-App erläutert, und es wurde erklärt, wie eine Xamarin.Android-Anwendung als System-App installiert werden kann.