armeabi는 무엇이며 왜 사용합니까?
오픈 소스를 탐색 할 때이 라이브러리 (armeabi)를 여러 번 봅니다.
나는 그것에 대한 설명을 그물로 검색했지만 내가 찾은 모든 결과는 그것에 대해 이야기하고 정의하지 않았습니다.
이 armeabi는 무엇이며 Android 애플리케이션에서 사용하는 이유는 무엇입니까?
Android 기기에는 CPU가 있습니다. 이러한 CPU 중 상당수는 ARM 아키텍처를 기반으로하는 반면 일부는 x86을 기반으로하고 다른 일부는 MIPS와 같은 다른 항목을 기반으로합니다.
일부 Android 앱은 NDK (Native Development Kit)를 사용하여 앱에 연결할 C / C ++ 코드를 만듭니다. 특정 CPU 아키텍처를 위해 C / C ++ 코드를 컴파일해야합니다. NDK는 각 아키텍처 용으로 컴파일 된 C / C ++ 코드 버전을 아키텍처 별 디렉토리에 배치합니다. 이러한 디렉토리 중 하나는 armeabi/
일반 ARM CPU 용입니다. 도 있습니다 armeabi-v7/
(AN ARM v7의 호환 CPU에 대한), x86/
(86 CPU에 대한) 등
ABI- 애플리케이션 바이너리 인터페이스
EABI- 임베디드 애플리케이션 바이너리 인터페이스
따라서 ARMEABI는 Android 기기의 CPU 아키텍처와 일치하는 컴파일 된 바이너리 입니다.
예 :
arm64-v8a (Nexus 5x) -64 비트 -ARM Cortex-A35, ARM Cortex-A53, ARM Cortex-A57, ARM Cortex-A72, ARM Cortex-A73
armeabi-v7a -32 비트 -ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17
Android Studio 2.3을 사용하여 * .so 바이너리 jniLib 를 포함하려면 src/main/jniLibs
폴더에 배치하고 * .gradle 파일에 다음 구성을 추가합니다.
android {
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
}
dependencies {
compile fileTree(dir: 'jniLibs', include: ['*.so'])
}
나는 최근 에 다른 CPU와 관련된 꽤 좋은 기사 와 그들을 지원하면서 APK 크기를 유지하는 방법에 대한 제안을 보았습니다 . 이 기사는 다음에 대한 정보를 제공합니다.
- 밉
- mips64
- X86
- X86 ~ 64
- arm64-v8a
- Armeabi
- armeabi-v7a
참조 URL : https://stackoverflow.com/questions/23042175/what-is-armeabi-and-why-they-use-it
'IT박스' 카테고리의 다른 글
Jekyll과 함께 Live Reload 사용 (0) | 2020.12.29 |
---|---|
def`self.function` 이름은 무엇을 의미합니까? (0) | 2020.12.29 |
여러 공간을 단일 공간으로 병합합니다. (0) | 2020.12.29 |
플래그가있는 Python re.sub가 모든 발생을 대체하지는 않습니다. (0) | 2020.12.29 |
Matplotlib : 축 색상 변경 (0) | 2020.12.29 |