Как узнать, является ли моя установленная версия Android, а не процессор, 64-битной или 32-битной?

Поскольку 64-битный процессор должен выполнять 32-битные программы , иногда трудно понять, какая из них установлена ​​на моем устройстве.

Есть программы, требующие этих знаний, например, установщик Xposed Framework .

Что можно считать правильным методом , будь то ADB, командная строка или программное обеспечение?

Раньше я делал на настольном Linux:

 sudo uname -a

Может быть есть какой-то аналог для Android?

Дополнительные данные:

  • Некоторые программы, которые должны сообщать об этом, мне не совсем ясны. Это пример какого-то отчета AIDA64. Даже когда показывает 32 бита, это информация об операционной системе? Я бы сказал, что это просто аппаратное обеспечение:

    (Щелкните изображение, чтобы увеличить; моя AIDA64 на испанском языке)

    IMG: Пример отчета AIDA64

Вопрос расширен на этот другой

Какое у вас устройство?
См. эту страницу: software.intel.com/en-us/blogs/2014/12/16/… В нем говорится, что нужно просмотреть свойство ro.product.cpu.abiи связанное с ним, ro.product.cpu.abilist32а ro.product.cpu.abilist64также в выводе getprop. У меня нет 64-битного устройства, поэтому я не могу проверить несколько вещей. Также есть похожий вопрос на Quora здесь .
@New-To-IT, у меня есть несколько устройств Android. И, как ученый-компьютерщик, я работаю с несколькими разными моделями. Для меня было бы предпочтительнее найти общий метод (или, по крайней мере, максимально общий). Указание устройства преобразовало бы этот вопрос в «Как я могу определить, является ли установленная версия Android для моего [Бренда] [Модели] [Номера] 64- или 32-разрядной версией?».
@Firelord: спасибо за ссылку. Кажется, это связано с «текущим устройством», а не с «текущей установленной версией Android». Было бы то же самое?
Когда дело доходит до рабочего стола, если вы запускаете 32-битное ядро ​​на 64-битной машине, ядро ​​просто говорит, что машина 32-битная. Что-то могло измениться (я не знаю текущую сцену), так что это, насколько я могу судить. Может быть, другие могут предоставить лучший вклад.
@Sopalajo de Arrierez Пробовали ли вы приложение для тестирования Antutu? Он отображает 32/64-битную информацию для всех устройств. ;)
@Lucky: я протестировал AIDA64 и некоторые другие инструменты, которые сообщают 32/64-битную информацию, но ни один из них не дает четкого ответа, говорят ли они об операционной системе или оборудовании. Добавил экран захвата к моему исходному вопросу, чтобы показать.
Связано, если не обман: android.stackexchange.com/q/36291/44325
@ЭндрюТ. : Я не думаю, что этот вопрос повторяется, поскольку он задан в 2012 году, когда не было 64-битного оборудования для устройств Android. Он просто спрашивает, является ли операционная система Android ( существующая тогда) 32- или 64-битным программным обеспечением.
Я также не совсем уверен, что это обман (поэтому я не голосовал за закрытие), но когда я исследовал это, я никогда не сталкивался с таким термином, как 64-разрядная ОС Android, по сравнению с другими ОС, такими как Windows (x64 ). Все, что я нашел, это то, что это зависит только от архитектуры процессора, а Android L — первая 64-битная ОС . Если вы не это имели в виду, или я что-то упускаю из виду о 64-битной ОС и процессоре на Android, пожалуйста, просветите меня.
(продолжение) Кроме того, я также никогда не сталкивался с загрузкой изображений для Android с определенной разрядностью (32 или 64), в отличие от ОС Windows или Linux (x86 против x64).
Ну, @AndrewT. может быть, нам стоит начать другую тему (или изменить эту) с заголовком «Есть ли 64-битная версия Android и 32-битная версия?». Другой способ спросить: «Может ли 64-битное аппаратное устройство работать с 32-битной версией Android?». Иногда проблема заключается в вопросе, а не в ответе.
Я думаю, что это хорошая идея, так как кажется, что в ОС Android (с использованием SoC) проще иметь недопонимание между разрядностью, чем в других ОС (по крайней мере, я запутался с этой темой при исследовании). Но не меняйте этот вопрос, так как на него уже есть ответ. Либо расширьте это, либо опубликуйте новый вопрос и обратитесь к этому вопросу.
Изменил исходный вопрос, чтобы расширить его до нового, @AndrewT.

Ответы (1)

uname -mотобразит архитектуру работающего ядра . Это отличается от того, на чем может работать ваше оборудование.

К сожалению, вам нужно знать, какие архитектуры 32-битные, а какие 64-битные. Но это можно легко узнать.

Например, мой m7 отображает arm7l. Быстрый поиск подтверждает, что это 32-битная архитектура, а это означает, что мое работающее ядро ​​было скомпилировано как 32-битный исполняемый файл.

Но если вы проверите использование, unameвы получите -m The machine (hardware) type. i.stack.imgur.com/DTueH.png
Это относится к архитектуре машины, для которой было скомпилировано ядро. Попробуйте установить 32-битную Ubuntu на свой 64-битный компьютер, и вы получите i686 или какое-либо другое имя 32-битной архитектуры из uname -m.
Как сказал Павел, uname -mможно обмануть. Некоторые важные подробности здесь: может ли 64-битное аппаратное устройство работать с 32-битной версией Android?