태그 보관물: processor

processor

APK가 어떤 아키텍처를 사용하는지 알려면 어떻게해야합니까? aapt badging에 관한 보고서를 살펴 보았다 aapt

대량의 APK를 테스트하는 스크립트를 작성 중입니다. 일부는 x86에서 실행되고 일부는 팔에서 실행됩니다. 어떤 apk가 어떤 아키텍처에 사용되는지 알 수있는 방법이 있습니까?

나는 aapt badging에 관한 보고서를 살펴 보았다 aapt dump badging application.apk. 일부 arm 호환 버전의 native-code: 'armeabi-v7a'경우 모든 버전이 표시 되지는 않지만 x86 호환 apk가 실행되는 아키텍처에 대한 표시는 없습니다.

또한 apktool을 사용하여 apk를 분리하고 AndroidManifest.xml을 검사했습니다. 칩 아키텍처와 관련된 것도 없습니다.

어떤 아이디어?



답변

APK의 기본 라이브러리가 어떤 아키텍처로 구성되어 있는지 확인하는 한 가지 방법은 압축을 풀고 (zip 파일 일뿐) libs 폴더를 살펴 보는 것입니다. 응용 프로그램에 기본 라이브러리가 포함되어있는 경우에는 내부의 다음 하위 폴더 (이 안에 컴파일 된 라이브러리 포함) :

참조 안드로이드 응용 프로그램 패키지를 종료 더 APK의 구조에 대한 정보, 그리고 위의 목록의 소스. 아키텍처 관련 사항에 대한 일부 정보와 함께보다 완전한 (MIPS64 포함) 목록은 2016 년 4 월 18 일에 캡처 된 Android 개발자 ABI 관리 페이지 의 아카이브 된 버전에서 찾을 수 있습니다 .

흥미롭게도 하나의 단일 ABI (앱에 하나의 아키텍처 용으로 설계된 기본 라이브러리가 포함되어 있음)를 타겟팅한다고해서 반드시 다른 아키텍처를 사용하는 장치에서 앱이 실행되는 것은 아닙니다. 예를 들어 ARMv8-a는 ARM 및 ARMv7-a와 역 호환 되며 Intel의 x86 Android 장치에는 x86 장치에서 ARM 코드를 실행할 수 있는 독점 변환 계층 이 포함되어 있습니다 (ARM 전용 응용 프로그램은 x86 플랫폼에서 실행될 수 있음). Android 장치가 실행할 수있는 ABI 목록은 ro.product.cpu.abilist속성 에서 찾을 수 있습니다.이 속성 은 다음 명령을 사용하여 셸 (예 : 장치의 터미널 앱을 통해 또는 adb 를 통해)로 얻을 수 있습니다 .adb shellgetpropgetprop ro.product.cpu.abilist


답변