Как обнаружить android устройство 64 бит или 32 бит Процессор?

Я пытаюсь найти лучшее решение для этого вопроса. Причина в том, что lib в нашем приложении не может работать с 64-битным процессором, поэтому мне нужно отключить его в этом случае. Я обнаружил, что в Android версии 21 (lolipop)и выше мы можем легко обнаружить, что устройство является 32-битным или 64-битным процессором с помощью сборки.SUPPORTED_64_BIT_ABIS и если он возвращает массив строк с 0 элементами, то... а хах! Устройство имеет 32-разрядный процессор. Как насчет более низкой версии android? Строить.SUPPORTED_64_BIT_ABIS просто только поддержка от версии Android Lolipop и выше. Спасибо И С Наилучшими Пожеланиями, Желаю вам ребята всего наилучшего!

4 ответов


простой ответ: нет необходимости проверять это на версиях Android ниже Lollipop. Это связано с тем, что Lollipop представила поддержку платформы для 64-битных архитектур, Android-версии ниже Lollipop не будут работать с 64-битным процессором.

в Android 5.0 появилась поддержка платформы для 64-разрядных архитектур, используемых от Nexus 9 NVIDIA Tegra K1. Оптимизация обеспечивает больший адрес пространство и улучшенная производительность для определенных вычислительных рабочих нагрузок. Приложения написано на языке Java запускаются как 64-разрядные приложения автоматически-нет необходимы изменения. Если ваше приложение использует собственный код, мы расширили NDK для поддержки новых ABIs для ARM v8, x86-64 и MIPS-64. (источник)


 try {
            boolean  isArm64 = false;

            BufferedReader localBufferedReader = new BufferedReader(new FileReader("/proc/cpuinfo"));
            if (localBufferedReader.readLine().contains("aarch64")) {
                isArm64 = true;
            }
            localBufferedReader.close();
        } catch (IOException e) {
        }

или

final boolean is64bit = Build.SUPPORTED_64_BIT_ABIS.length > 0;

все подключите устройство системы АТО , в windows введите в командной строке эту команду

adb shell cat  /proc/cpuinfo | findstr arc

в базовой системе linux или mac откройте терминал и введите эту команду

  adb shell cat  /proc/cpuinfo | grep arc

если первая строка out contain 32 этот средний тип системы 32bit

первая строка из if contain 64 этот средний тип системы 64bit


32Bit, если ниже 5.0, потому что android поддерживает 64Bit до 5.0.
Судить ли строить.SUPPORTED_ABIS поддержка 64, если выше 5.0.

String bits;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    bits = TextUtils.join(", ", Build.SUPPORTED_ABIS).contains("64") ? "64-Bit" : "32-Bit";
} else {
    bits = "32-Bit";
}

вы можете просмотреть устройство 64bit или 32bit с помощью Dev Tools.