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. 앱이 디버그를 사용 하도록 구성 된 경우에는 Shared Runtime 사용빠른 배포 사용 옵션을 사용할 수 있으며,이 옵션을 사용 하면 명시적 아키텍처를 선택할 수 없습니다.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 옵션 페이지에서 패키징 속성 섹션을 확인 하 고 Shared Runtime 사용 이 사용 하지 않도록 설정 되어 있는지 확인 합니다 .이 기능을 해제 하면 지원할 abis 명시적으로 선택할 수 있습니다.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-v7a 및 armeabi-v7a-armeabi-v7a을 선택Selecting armeabi and armeabi-v7a

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

  • ARMv5TE 명령 집합을 하나 이상 지 원하는 armeabi-v7a – ARM 기반 cpu입니다.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- 하드웨어 부동 소수점 작업 및 다중 CPU (SMP) 장치를 사용 하 여 ARM 기반 cpu를 armeabi-v7a – 합니다.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- 64 비트 ARMv8 아키텍처를 기반으로 – cpu를 arm64-v8a 합니다.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 ( x64AMD64라고도 함) 명령 집합을 지 원하는 cpu.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. 64 비트 ARM 플랫폼을 대상으로 하는 경우 (예: Nexus 9) 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. 대상 x86 장치에서 64 비트 CPU 아키텍처를 사용 하는 경우 x86_64를 선택 합니다.If the target x86 device uses a 64-bit CPU architecture, select x86_64.

여러 플랫폼 대상 지정Targeting Multiple Platforms

여러 CPU 아키텍처를 대상으로 하는 경우 두 개 이상의 ABI를 선택할 수 있습니다 (더 큰 APK 파일 크기의 비용).To target multiple CPU architectures, you can select more than one ABI (at the expense of larger APK file size). 각 지원 되는 아키텍처에 대 한 별도의 APK를 만들려면 선택한 ABI 별 패키지 생성 (. 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.

64 비트 장치를 대상으로 arm64-arm64-v8a 또는 x86_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의 크기를 줄이거나 앱에 특정 CPU 아키텍처와 관련 된 공유 라이브러리가 있으므로 각 아키텍처에 대해 별도의 APK를 만들어야 할 수도 있습니다.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 관련 APKs 빌드를 참조 하세요.For more information about this approach, see Build ABI-Specific APKs.