☰ Dev.Life

Post

안드로이드 단말 32비트인지 64비트인지 확인 방법 (How to know the android device is 32bit or 64bit)

ADB shell을 이용하거나, 앱 내에서는 android.os.Build클래스나 System.getProperty를 이용해 해당 단말의 32/64 비트 여부를 확인할 수 있다. 테스트에는 단말로 ASUS Zenfone 5(Intel Atom Z2560 1.6 GHz Dual-Core CPU) 및 각 타입별 에뮬레이터를 사용.

  • ASUS Zenfone 5 : 4.4.2 Kitkat
  • Emulator : 5.0 Lollipop

ADB (Android Debug Bridge)

Terminal에서 다음 커맨드 수행.

adb shell getprop ro.product.cpu.abi
adb shell getprop ro.product.cpu.abi2

다음 결과의 x86에서 테스트 단말은 32비트 환경임을 확인할 수 있다.

ro.product.cpu.abi : x86
ro.product.cpu.abi2 : armeabi-v7a

참고로, Android Studio 1.0을 기본 설치하였다면, adb경로는
C:\Users\{사용자이름}\AppData\Local\Android\sdk\platform-tools

App (Using Code)

Build.CPU_ABI, Build.CPU_ABI2는 API level 21(5.0 Lollipop)에서 Deprecated.
5.0 Lollipop에서는 SUPPORTED_ABIS, SUPPORTED_32_BIT_ABIS, SUPPORTED_64_BIT_ABIS를 사용하는데 이전과 달리 Array String 으로 리턴된다.

import android.os.Build;

Log.i(TAG, "CPU_ABI : " + Build.CPU_ABI);
Log.i(TAG, "CPU_ABI2 : " + Build.CPU_ABI2);
Log.i(TAG, "OS.ARCH : " + System.getProperty("os.arch"));

Log.i(TAG, "SUPPORTED_ABIS : " + Arrays.toString(Build.SUPPORTED_ABIS));
Log.i(TAG, "SUPPORTED_32_BIT_ABIS : " + Arrays.toString(Build.SUPPORTED_32_BIT_ABIS));
Log.i(TAG, "SUPPORTED_64_BIT_ABIS : " + Arrays.toString(Build.SUPPORTED_64_BIT_ABIS));

Device ASUS Zenfone 5

CPU_ABI : x86
CPU_ABI2 : armeabi-v7a
OS.ARCH : i686

Emulator x86_64

CPU_ABI : x86_64
CPU_ABI2 :
OS.ARCH : x86_64

SUPPORTED_ABIS : [x86_64, x86]
SUPPORTED_32_BIT_ABIS : [x86]
SUPPORTED_64_BIT_ABIS : [x86_64]

Emulator armeabi-v7a

CPU_ABI : armeabi-v7a
CPU_ABI2 : armeabi
OS.ARCH : armv7l

SUPPORTED_ABIS : [armeabi-v7a, armeabi]
SUPPORTED_32_BIT_ABIS : [armeabi-v7a, armeabi]
SUPPORTED_64_BIT_ABIS : []

Emulator x86

CPU_ABI : x86
CPU_ABI2 :
OS.ARCH : i686

SUPPORTED_ABIS : [x86]
SUPPORTED_32_BIT_ABIS : [x86]
SUPPORTED_64_BIT_ABIS : []

Reference

티스토리 툴바