Android arm64-v8a, armeabi-v7a, armeabi, x86 등 CPU의 so 파일 호환성에 대한 질문
2685 단어 안드로이드
먼저 몇 개의 전문어를 소개한다.
ARM: 삽입식 중의 구조로 모두 Advanced RISC Machine이라고 불리며 ARM 프로세서로 이해할 수 있습니다.
ABI(Application Binary Interface): 응용 프로그램 바이너리 인터페이스는 응용 프로그램과 운영 체제 사이, 한 응용 프로그램과 라이브러리 사이, 또는 응용 프로그램의 구성 부분 사이의 낮은 인터페이스를 설명합니다.
ABI와 CPU 관계: 대부분의 cpu는 한 가지 이상의 ABI를 지원합니다.하나의 응용 프로그램이 장치에 설치되면, 이 장치가 지원하는 CPU 구조만 대응합니다.so 파일이 설치됩니다.
ABI 디렉토리(가로) 및 cpu(세로)
armeabi
armeabi-v7a
arm64-v8a
mips
mips64
x86
x86_64
ARMv5
뒷받침
ARMv7
뒷받침
뒷받침
ARMv8
뒷받침
뒷받침
뒷받침
MIPS
뒷받침
MIPS64
뒷받침
뒷받침
x86
뒷받침
뒷받침
뒷받침
x86_64
뒷받침
뒷받침
뒷받침
x86 장치에서 ABI 우선 순위 선택
4
4
4
arm 디바이스의 CPU는 armabi-v8a, ABI 우선 순위
4
4
4
arm 디바이스의 CPU는 armabi-v7a, ABI 우선 순위
4
4
일반적으로 Android 디바이스의 CPU 유형은 다음과 같습니다.
1.armeabiv-v7a: 7 ARM , , Android 。
2.arm64-v8a: 8 、64 ARM 。
3.armeabi: 5 、 6 ARM , , , 。
4.x86 / x86_64: x86 Intel Houdini ,
arm .so 。
5.mips/mips64: 。
관하여so 파일 선택
관련되다.so 파일을 불러올 때, 서로 다른 구조의 CPU는 서로 다른 것을 불러옵니다.서류arm 구조의 cpu라면 불러옵니다. 예를 들어armabi-v7a는armabi-v7a 폴더에서 대응하는 것을 우선적으로 찾습니다.so 파일, 찾지 못하면armabi 폴더 아래에서 찾습니다.so 파일, 없으면 프로그램이 필요할 때까지 실행됩니다.so 파일의 위치가 붕괴를 일으킬 수 있습니다.
mps 시장 점유율이 낮기 때문에 x86은armabi를 호환하기 때문에arm 구조만 지원하면 된다. 또한arm에서arm64-v8a의 cpu 구조는arm-v7a와armabi를 아래로 호환하고arm-v7a의 구조도armabi를 호환한다.따라서 아라비 하나만 선택하면 된다.현재 주류의 휴대전화 cpu 구조는arm-v7a이기 때문에arm-v7a로armabi를 대체할 수도 있다. 그들 두 가지 차이점은arm-v7a의 cpu가armabi를 사용하는 것이다.so 파일일 때 계산 효율이 좀 낮을 수 있습니다.
결론은arm-v7a와armabi 둘 중 하나를 선택하면 된다. 현재 주류 앱인 타오바오 위챗은 하나의armabi만 어울린다.
abiFilters 사용 정보
ndk {
abiFilters "armeabi-v7a" // ndk ( mips,x86,armeabi,arm-v8 so )
}
만약build에 있다면.gradle에서abiFilters를 설정하면 설정된 디렉터리의 so 파일만 apk 설치 패키지로 포장됩니다.
참고 사항:
4
4
배우기 좋아하는 친구들과 함께 발전하는 것을 환영합니다:230274309
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
VisualStudio에서 Ant를 사용하여 Native APK를 만듭니다.※2019/11/13 Gradle판의 기사도 올랐습니다. 자세한 내용은 을 참조하십시오. CEDEC2019의 " "이라는 세션에서 VisualStudio에서도 Gradle을 사용한 Native 앱을 만들 수 있다는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.