CPU-Architekturen

Xamarin.Android unterstützt mehrere CPU-Architekturen, einschließlich 32-Bit- und 64-Bit-Geräten. In diesem Artikel wird erläutert, wie Sie eine App auf eine oder mehrere von Android unterstützte CPU-Architekturen ausrichten.

Übersicht über CPU-Architekturen

Wenn Sie Ihre App für die Veröffentlichung vorbereiten, müssen Sie angeben, welche Plattform-CPU-Architekturen Ihre App unterstützt. Ein einzelnes APK kann Computercode enthalten, der mehrere unterschiedliche Architekturen unterstützt. Jede Sammlung von architekturspezifischem Code ist einer Application Binary Interface (ABI) zugeordnet. Jede ABI definiert, wie dieser Computercode zur Laufzeit mit Android interagieren soll. Weitere Informationen zur Funktionsweise finden Sie unter Multi-Core Devices & Xamarin.Android.

Angeben unterstützter Architekturen

In der Regel wählen Sie explizit eine Architektur (oder Architekturen) aus, wenn Ihre App für Release konfiguriert ist. Wenn Ihre App für das Debuggen konfiguriert ist, werden die Optionen "Gemeinsame Laufzeit verwenden" und "Schnelle Bereitstellung verwenden" aktiviert, wodurch die explizite Architekturauswahl deaktiviert wird.

Klicken Sie in Visual Studio unter dem Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, und wählen Sie "Eigenschaften" aus. Überprüfen Sie auf der Seite "Android-Optionen " den Abschnitt "Verpackungseigenschaften" , und vergewissern Sie sich, dass "Freigegebene Runtime verwenden" deaktiviert ist (durch Deaktivieren dieser Option können Sie explizit auswählen, welche ABIs unterstützt werden sollen). Klicken Sie auf die Schaltfläche "Erweitert", und überprüfen Sie unter "Unterstützte Architekturen" die Architekturen, die Sie unterstützen möchten:

Selecting armeabi and armeabi-v7a

Xamarin.Android unterstützt die folgenden Architekturen:

  • armeabi – ARM-basierte CPUs, die mindestens den ARMv5TE-Anweisungssatz unterstützen. Beachten Sie, dass armeabi es sich nicht um threadsichere Geräte handelt und nicht auf Multi-CPU-Geräten verwendet werden sollte.

Hinweis

Ab Xamarin.Android 9.2armeabi wird nicht mehr unterstützt.

  • armeabi-v7a – ARM-basierte CPUs mit Hardware-Gleitkommavorgängen und mehreren CPU-Geräten (SMP). Beachten Sie, dass armeabi-v7a Computercode nicht auf ARMv5-Geräten ausgeführt wird.

  • arm64-v8a – CPUs basierend auf der 64-Bit-ARMv8-Architektur.

  • x86 – CPUs, die den x86 -Anweisungssatz (oder IA-32) unterstützen. Dieser Anweisungssatz entspricht dem des Browsers Pro, einschließlich MMX, SSE, SSE2 und SSE3 Anweisungen.

  • x86_64 CPUs, die den 64-Bit-x86 -Anweisungssatz (auch als x64 und AMD64 bezeichnet) unterstützen.

Xamarin.Android wird standardmäßig für Releasebuilds armeabi-v7a verwendet. Diese Einstellung bietet deutlich bessere Leistung als armeabi. Wenn Sie auf eine 64-Bit-ARM-Plattform abzielen (z. B. das Nexus 9), wählen Sie arm64-v8aaus. Wenn Sie Ihre App auf einem x86-Gerät bereitstellen, wählen Sie x86. Wenn das Ziel x86-Gerät eine 64-Bit-CPU-Architektur verwendet, wählen Sie x86_64.

Adressierung mehrerer Plattformen

Um mehrere CPU-Architekturen zu erreichen, können Sie mehrere ABI (auf Kosten einer größeren APK-Dateigröße) auswählen. Sie können die Option "Ein Paket generieren( APK) pro ausgewählter ABI-Option (beschrieben in Set Packaging Properties) verwenden, um für jede unterstützte Architektur ein separates APK zu erstellen.

Sie müssen arm64-v8a oder x86_64 nicht für 64-Bit-Geräte auswählen. Die 64-Bit-Unterstützung ist nicht erforderlich, um Ihre App auf 64-Bit-Hardware auszuführen. Beispielsweise können 64-Bit-ARM-Geräte (z. B. nexus 9) Apps ausführen, die für armeabi-v7a. Der Hauptvorteil der Aktivierung der 64-Bit-Unterstützung besteht darin, dass Ihre App mehr Arbeitsspeicher adressieren kann.

Hinweis

Ab August 2018 sind neue Apps erforderlich, um auf API-Ebene 26 abzielen, und ab August 2019 sind Apps zum Bereitstellen von 64-Bit-Versionen erforderlich, zusätzlich zu der 32-Bit-Version.

Zusätzliche Informationen

In einigen Situationen müssen Sie möglicherweise für jede Architektur ein separates APK erstellen (um die Größe Ihrer APK zu verringern oder weil Ihre App über freigegebene Bibliotheken verfügt, die für eine bestimmte CPU-Architektur spezifisch sind). Weitere Informationen zu diesem Ansatz finden Sie unter Build ABI-Specific APKs.