머리말: 초기에는 안드로이드 시스템이 거의 ARMv5 CPU 아키텍처만 지원했으나, 현재는 ARMv5, ARMv7(2010년부터), x86(2011년부터), MIPS(2012년부터), ARMv8, MIPS64, x86_64(2014년부터) 등 7가지 CPU 아키텍처를 지원하며, 각각은 해당 ABI(애플리케이션)와 연관되어 있습니다. 이진 인터페이스). 애플리케이션 바이너리 인터페이스는 해당 시스템 플랫폼에서 바이너리(특히 .so 파일)가 사용되는 명령어 집합, 메모리 정렬, 그리고 이용 가능한 시스템 기능 라이브러리까지 어떻게 실행되는지 정의합니다. 안드로이드에서는 각 CPU 아키텍처가 ABI에 대응합니다: armeabi, armeabi-v7a, x86, mips, arm64-v8a, mips64, x86_64.
X86 시리즈 내보내기 ANDROID_ABI=x86
ARM의 Cortex-A8 또는 Cortex-A9 시리즈 내보내기 ANDROID_ABI=armeabi-v7a (참고: armeabi-v7a는 부동소수점 연산이나 고급 확장이 있는 ARM CPU용입니다)
ARMv6 내보내기 ANDROID_ABI=Armeabi (참고: Armeabi는 일반 또는 구형 Arm CPU용입니다)
ARMv6에는 FPU가 포함되어 있지 않습니다 내보내기 ANDROID_ABI=Armeabi 내보내기 NO_FPU=1
ARMv5 또는 에뮬레이터 내보내기 ANDROID_ABI=Armeabi 내보내기 NO_ARMV6=1
MIPS 시리즈 export ANDROID_ABI=mips
1. ARM(고급 RISC 머신) 아키텍처에 대하여 이 아키텍처는 32비트 RISC(Reduced Instruction Set Computing) 프로세서 아키텍처로, 많은 임베디드 시스템 설계에서 널리 사용됩니다. 하지만 에너지 절약 특성 덕분에 ARM 프로세서는 저비용, 고성능, 저전력 소비라는 주요 설계 목표에 부합하여 모바일 통신 분야에 매우 적합하다. ARM의 장점은 강력한 성능이 아니라 효율성에 있습니다. ARM은 RISC 파이프라인 명령어 집합을 사용해 포괄적인 작업을 완성하는 데 불리하지만, 비교적 고정된 작업이 있는 일부 응용 프로그램에서는 그 장점을 충분히 활용할 수 있습니다. ARM 구조 컴퓨터는 CPU와 데이터 저장 장치를 전용 데이터 인터페이스를 통해 연결하기 때문에, ARM 저장장치와 메모리의 성능을 확장하기 어렵습니다(일반적으로 메모리 및 데이터 저장 용량은 제품 설계에서 결정되어 있습니다). 따라서 ARM 구조를 사용하는 시스템은 일반적으로 확장을 고려하지 않습니다. "충분하다"는 원칙이 기본적으로 추구됩니다. 2. x86 아키텍처에 대하여 이는 복잡한 명령어 집합 CISC(Complex Instruction Set Computer) 프로세서 아키텍처입니다. 어차피 X86 컴퓨터는 ARM 기반 시스템보다 성능 면에서 훨씬 빠르고 강력합니다. X86의 CPU는 1G, 듀얼코어, 쿼드코어 이상입니다. X86 구조 컴퓨터는 하드 디스크, 메모리 등과 같은 확장 장치와 연결하기 위해 '브리지' 방식을 사용하며, x86 구조 컴퓨터는 거의 30년 전부터 등장해 왔고, 이를 지원하는 확장 장치도 다양하고 가격도 비교적 저렴하기 때문에, x86 구조 컴퓨터는 메모리, 하드 디스크 등 성능 향상을 쉽게 확장할 수 있습니다. |