Architektury procesorů

Xamarin.Android podporuje několik architektur procesoru, včetně 32bitových a 64bitových zařízení. Tento článek vysvětluje, jak cílit aplikaci na jednu nebo více architektur procesorů podporovaných androidem.

Přehled architektur procesoru

Při přípravě aplikace na vydání musíte určit, které architektury procesoru platformy vaše aplikace podporuje. Jeden APK může obsahovat strojový kód, který podporuje více různých architektur. Každá kolekce kódu specifického pro architekturu je přidružená k binárnímu rozhraní aplikace (ABI). Každý ABI definuje, jak má tento kód počítače pracovat s Androidem za běhu. Další informace o tom, jak to funguje, najdete v tématu Vícejádrových zařízení a Xamarin.Android.

Určení podporovaných architektur

Obvykle explicitně vyberete architekturu (nebo architektury), když je vaše aplikace nakonfigurovaná pro verzi. Pokud je vaše aplikace nakonfigurovaná pro ladění, jsou povolené možnosti Použít sdílený modul runtime a Použít rychlé nasazení , které zakazují explicitní výběr architektury.

V sadě Visual Studio klikněte pravým tlačítkem na projekt pod Průzkumník řešení a vyberte Vlastnosti. Na stránce Možnosti androidu zkontrolujte část Vlastnosti balení a ověřte, že je zakázané použít sdílený modul runtime (vypnutím této možnosti můžete explicitně vybrat, které abi chcete podporovat). Klikněte na tlačítko Upřesnit a v části Podporované architektury zkontrolujte architektury, které chcete podporovat:

Selecting armeabi and armeabi-v7a

Xamarin.Android podporuje následující architektury:

  • armeabi – procesory založené na ARM, které podporují alespoň instrukční sadu ARMv5TE. Mějte na paměti, že armeabi není bezpečné pro přístup z více vláken a nemělo by se používat na zařízeních s více procesory.

Poznámka:

Od verze Xamarin.Android 9.2armeabi se už nepodporuje.

  • armeabi-v7a – procesory založené na ARM s hardwarovými operacemi s plovoucí desetinou čárkou a několika zařízeními s procesorem (SMP). Mějte na paměti, že armeabi-v7a kód počítače se nebude spouštět na zařízeních ARMv5.

  • arm64-v8a – procesory založené na 64bitové architektuře ARMv8.

  • x86 – procesory, které podporují instrukční sadu x86 (nebo IA-32). Tato instrukční sada je ekvivalentní tomuto procesoru Pentium Pro, včetně MMX, SSE, SSE2 a pokynů SSE3.

  • x86_64 procesory, které podporují instrukční sadu x86 (označovanou také jako x64 a AMD64).

Xamarin.Android ve výchozím nastavení armeabi-v7a pro buildy vydaných verzí . Toto nastavení poskytuje výrazně lepší výkon než armeabi. Pokud cílíte na 64bitovou platformu ARM (například Nexus 9), vyberte arm64-v8a. Pokud nasazujete aplikaci do zařízení x86, vyberte x86. Pokud cílové zařízení x86 používá 64bitovou architekturu procesoru, vyberte x86_64.

Cílení na více platforem

Pokud chcete cílit na více architektur procesoru, můžete vybrat více než jednu ABI (na úkor větší velikosti souboru APK). Pro každou podporovanou architekturu můžete použít možnost Generovat jeden balíček (.apk) pro vybranou možnost ABI (popsanou v nastavení vlastností balení).

Pro cílení na 64bitová zařízení nemusíte vybírat arm64-v8a ani x86_64 . K spuštění aplikace na 64bitovém hardwaru se nevyžaduje 64bitová podpora. Například 64bitová zařízení ARM (například Nexus 9) můžou spouštět aplikace nakonfigurované pro armeabi-v7a. Hlavní výhodou povolení 64bitové podpory je umožnit vaší aplikaci adresovat více paměti.

Poznámka:

Od srpna 2018 budou nové aplikace nutné pro cílovou úroveň rozhraní API 26 a od srpna 2019 budou aplikace nutné k poskytování 64bitových verzí kromě 32bitové verze.

Další informace

V některých situacích možná budete muset vytvořit samostatný soubor APK pro každou architekturu (abyste snížili velikost apk nebo protože vaše aplikace má sdílené knihovny, které jsou specifické pro konkrétní architekturu procesoru). Další informace o tomto přístupu naleznete v tématu Sestavení ABI-Specific APKs.