CPU 아키텍처CPU Architectures

Xamarin.Android는 32 비트 및 64 비트 장치를 비롯 한 여러 CPU 아키텍처를 지원 합니다. 이 문서에서는 앱이 하나 이상의 Android-지원 되는 CPU 아키텍처를 대상 하는 방법에 설명 합니다.Xamarin.Android supports several CPU architectures, including 32-bit and 64-bit devices. This article explains how to target an app to one or more Android-supported CPU architectures.

CPU 아키텍처 개요CPU Architectures Overview

어떤 플랫폼 CPU 아키텍처를 지정 해야 릴리스용 앱을 준비할 때 앱에서 지 원하는 프로그램입니다.When you prepare your app for release, you must specify which platform CPU architectures your app supports. 단일 APK가 여러 서로 다른 아키텍처를 지원하는 머신 코드를 포함할 수 잇습니다.A single APK can contain machine code to support multiple, different architectures. 아키텍처 관련 코드의 각 컬렉션은 연관 된 응용 프로그램 이진 인터페이스 (ABI).Each collection of architecture-specific code is associated with an Application Binary Interface (ABI). 각 abi 당이 기계어 코드로 런타임에 Android와 상호 작용 해야 하는 방법을 정의 합니다.Each ABI defines how this machine code is expected to interact with Android at run time. 작동 하는 방법에 대 한 자세한 내용은 참조 하세요. 다중 코어 장치 & Xamarin.Android합니다.For more information about how this works, see Multi-Core Devices & Xamarin.Android.

지원 되는 아키텍처를 지정 하는 방법How to Specify Supported Architectures

일반적으로 명시적으로 선택 하면 아키텍처 (또는 아키텍처)에 대 한 앱이 구성 하는 경우 릴리스합니다.Typically, you explicitly select an architecture (or architectures) when your app is configured for Release. 앱에 대해 구성 된 경우 디버그공유 런타임 사용 하 고 빠른 배포 사용 명시적 아키텍처 선택 영역을 사용 하지 않도록 설정 하는 옵션이 활성화 됩니다.When your app is configured for Debug, the Use Shared Runtime and Use Fast Deployment options are enabled, which disable explicit architecture selection.

Visual Studio에서 마우스 오른쪽 단추로 클릭에서 프로젝트를 솔루션 탐색기 선택한 속성합니다.In Visual Studio, right-click on your project under the Solution Explorer and select Properties. 아래는 Android 옵션 확인 페이지를 패키징 속성 섹션 및 확인 공유 런타임 사용 을 사용할 수 없습니다 (이 기능을 해제 하면를 명시적으로 지원 되는 Abi 선택).Under the Android Options page check the Packaging properties section and verify that Use Shared Runtime is disabled (turning this off allows you to explicitly select which ABIs to support). 클릭 합니다 고급 단추 및 아래 지원 되는 아키텍처를 지원 하 고 아키텍처를 확인:Click the Advanced button and, under Supported architectures, check the architectures that you want to support:

Armeabi와 armeabi-v7a 선택Selecting armeabi and armeabi-v7a

Xamarin.Android는 다음과 같은 아키텍처를 지원합니다.Xamarin.Android supports the following architectures:

  • armeabi – ARM 기반 Cpu 이상 ARMv5TE 명령 집합을 지원 합니다.armeabi – ARM-based CPUs that support at least the ARMv5TE instruction set. armeabi 는 스레드 안전 하지 않으며 다중 CPU 장치에서 사용할 수 없습니다.Note that armeabi is not thread-safe and should not be used on multi-CPU devices.

참고

일부로 Xamarin.Android 9.2, armeabi 는 지원 되지 않습니다.As of Xamarin.Android 9.2, armeabi is no longer supported.

  • armeabi-v7a – 하드웨어 부동 소수점 연산 및 여러 CPU (SMP) 장치를 사용 하 여 ARM 기반 Cpu입니다.armeabi-v7a – ARM-based CPUs with hardware floating-point operations and multiple CPU (SMP) devices. armeabi-v7a 기계어 코드는 ARMv5 장치에서 실행 되지 것입니다.Note that armeabi-v7a machine code will not run on ARMv5 devices.

  • arm64-v8a – Cpu ARMv8 64 비트 아키텍처를 기반으로 합니다.arm64-v8a – CPUs based on the 64-bit ARMv8 architecture.

  • x86 – x86 (또는 IA-32)를 지 원하는 Cpu의 명령 집합입니다.x86 – CPUs that support the x86 (or IA-32) instruction set. 이 명령 집합 MMX, SSE, SSE2 및 SSE3 지침을 비롯 한 Pentium Pro의 것과 같습니다.This instruction set is equivalent to that of the Pentium Pro, including MMX, SSE, SSE2, and SSE3 instructions.

  • x86_64 64 비트 x86을 지 원하는 Cpu의 (라고도 x64 하 고 AMD64) 명령 집합입니다.x86_64 CPUs that support the 64-bit x86 (also referred as x64 and AMD64) instruction set.

기본적으로 Xamarin.Android armeabi-v7a 에 대 한 릴리스 빌드합니다.Xamarin.Android defaults to armeabi-v7a for Release builds. 이 설정은 보다 훨씬 뛰어난 성능을 제공 armeabi합니다.This setting provides significantly better performance than armeabi. (예: Nexus 9) 64 비트 ARM 플랫폼을 대상으로 하는 경우 선택 arm64-v8a합니다.If you are targeting a 64-bit ARM platform (such as the Nexus 9), select arm64-v8a. X86에 앱을 배포 하는 경우 장치를 x86입니다.If you are deploying your app to an x86 device, select x86. 64 비트 CPU 아키텍처를 사용 하는 x86 대상 장치 선택 x86_64합니다.If the target x86 device uses a 64-bit CPU architecture, select x86_64.

여러 플랫폼을 대상으로Targeting Multiple Platforms

여러 CPU 아키텍처를 대상으로 더 큰 APK 파일 크기) (저하 둘 이상의 ABI를 선택할 수 있습니다.To target multiple CPU architectures, you can select more than one ABI (at the expense of larger APK file size). 사용할 수는 선택한 ABI 당 하나의 패키지 (.apk) 생성 옵션 (에 설명 된 패키지 속성 설정) 각각에 대 한 별도 APK를 만드는 아키텍처를 지원 합니다.You can use the Generate one package (.apk) per selected ABI option (described in Set Packaging Properties) to create a separate APK for each supported architecture.

선택할 필요가 없습니다 arm64-v8a 하거나 x86_64 64 비트 장치를 대상으로 64 비트 지원 64 비트 하드웨어에서 앱을 실행 하지 않아도 됩니다.You do not have to select arm64-v8a or x86_64 to target 64-bit devices; 64-bit support is not required to run your app on 64-bit hardware. 예를 들어, 64 비트 ARM 장치 (예는 Nexus 9)에 대해 구성 된 앱을 실행할 수 armeabi-v7a합니다.For example, 64-bit ARM devices (such as the Nexus 9) can run apps configured for armeabi-v7a. 64 비트 지원을 사용 하도록 설정 하는 주요 장점은 더 많은 메모리를 앱에 대 한 수 있도록 하는 것입니다.The primary advantage of enabling 64-bit support is to make it possible for your app to address more memory.

참고

2018년 8월부터 새 앱은 API 레벨 26을 대상으로 해야 하고, 2019년 8월부터 앱은 32비트 버전 외에 ‘64비트 버전을 제공’해야 합니다.From August 2018 new apps will be required to target API level 26, and from August 2019 apps will be required to provide 64-bit versions in addition to the 32-bit version.

추가 정보Additional Information

각 아키텍처에 대해 별도 APK를 만들어야 할 경우가 있습니다 (에 APK의 크기를 줄이기 위해 또는 특정 CPU 아키텍처와 관련 된 라이브러리를 공유 하는 앱에 있으므로).In some situations, you may need to create a separate APK for each architecture (to reduce the size of your APK, or because your app has shared libraries that are specific to a particular CPU architecture). 이 방법에 대 한 자세한 내용은 참조 하세요. ABI 관련 Apk 빌드합니다.For more information about this approach, see Build ABI-Specific APKs.