Armeabi v7a какой процессор

Обновлено: 21.11.2024

Начиная с выпуска Android Lollipop процесс установки Xposed Framework немного усложнился. Мало того, что для каждой версии Android существуют отдельные установщики, теперь вам также необходимо точно знать, какой тип процессора установлен на вашем устройстве, чтобы убедиться, что вы загружаете правильные файлы. На самом деле, в наши дни архитектура ЦП становится фактором во все большем количестве сценариев, включая некоторые загружаемые обновления приложений и, конечно же, пользовательские ПЗУ.

В современных телефонах Android используются три основные архитектуры ЦП. ARM, пожалуй, самый распространенный вариант, поскольку он оптимизирован для энергопотребления. ARM64 — это эволюция исходной архитектуры ARM, которая поддерживает 64-разрядную обработку для более мощных вычислений и быстро становится стандартом для новых устройств. Кроме того, есть x86, который немного мощнее, чем процессоры ARM любого типа, но не так экономичен для батареи, поэтому он наименее распространен из трех. Но независимо от всего этого, если вы не совсем уверены, какой у вас тип процессора, я покажу вам, как определить, является ли он ARM, ARM64 или чип x86 ниже.

Шаг 1. Установите информацию об оборудовании Droid

Самый простой способ узнать тип вашего процессора – установить приложение, которое дает вам информацию об оборудовании вашего устройства. Наше любимое такое приложение называется Droid Hardware Info и доступно бесплатно в магазине Google Play. Для начала найдите приложение по имени и установите его или перейдите непосредственно на страницу установки по следующей ссылке.

Шаг 2. Найдите архитектуру ЦП и наборы инструкций

Далее просто откройте сведения об оборудовании Droid и перейдите на вкладку Система. Отсюда следует отметить два поля — Архитектура процессора и Наборы инструкций. Запишите эту информацию и используйте таблицу на шаге 3 ниже, чтобы найти общее название для вашего типа ЦП.

Шаг 3. Преобразование этой информации в общее имя процессора

Информация, представленная в полях Архитектура ЦП и Наборы инструкций, немного отличается от требований, которые вы увидите, например, для приложения или установщика Xposed. Итак, чтобы подвести итог, сопоставьте информацию, которую вы нашли в Droid Hardware Info, со списком ниже, чтобы найти общее название для типа процессора вашего устройства:

Какой тип процессора используется в вашем устройстве — ARM, ARM64 или x86? Дайте нам знать в разделе комментариев ниже.

Защитите свое соединение без ежемесячного счета. Получите пожизненную подписку на VPN Unlimited для всех своих устройств, совершив разовую покупку в новом магазине Gadget Hacks Shop, и смотрите Hulu или Netflix без региональных ограничений, повышайте безопасность при просмотре в общедоступных сетях и многое другое.

Как точно определить архитектуру процессора
(armeabi-v7a, arm64-v8a, x86 или X86_64)
для загрузки правильных Android APK.

Поскольку у меня нет Google на моем новом Moto G7, я собирал информацию из
магазина Aurora, но по какой-то причине это было слишком медленно (возможно, Google замедлял работу
, я не не знаю).

Когда я загрузил неопубликованное приложение, были разные APK в зависимости от архитектуры процессора.

o lib/armeabi-v7a — старая цель для 32-разрядных процессоров.
o lib/arm64-v8a — более новая 64-битная цель.
o arm64-v8a. может запускать код, скомпилированный для armeabi-v7a
или некоторые устройства lib/x86 и lib/x86_64 могут запускать код, скомпилированный для устройств arm
и т. д.

Скорее всего, любой новый телефон будет arm64-v8a.

Все приложения Google Play с 1 августа 2019 года должны поддерживать 64-разрядную версию:

Но чтобы быть уверенным для любого устройства, в этом руководстве рассказывается, как
определить архитектуру для любого телефона Android:

Что сообщает, например, для моего нового Moto G7 (среди прочего):
o Архитектура процессора AArch64 Processor, rev 2 (aarch64), *arm64-v8a*

--
Обмен полезной информацией о общедоступном блюде Usenet для всех.

Либор Стриз

> Как точно определить архитектуру процессора (armeabi-v7a, arm64-v8a, x86 или X86_64) для загрузки правильных Android APK.

Мои любимые приложения для анализа системы
являются CPU-Z и AIDA64 (андроидные аналоги одноименных
утилит для Windows.

AIDA64 на вкладке ЦП для моего Xiaomi MI A2 6/128 ГБ пишет:

Поддерживаемые ABI: arm64-v8a, armeavi-v7a, armeabi.

--
Путник ( Странник )

Арлен Холдер

Вс, 22 декабря 2019 г., 07:22:48 +0100 (GMT+01:00), Либор Стриз написал:

Привет, Poutnik,
СПАСИБО за информацию о процессоре, так как мне никогда не нужна была эта информация,
до сих пор, просто потому, что я загружаю больше из-за того, что магазин Aurora
не работает в последнее время. (и Google Play не будет работать, если ОС не укажет на
аккаунт Google).

Только 1 из 1000 постеров Usenet, ИМХО, добавляет _value_ в любую ветку.

Я также благодарю вас за URL-адреса Google Play, так как мы все вместе работаем над
Usenet, где предоставление URL-адресов потенциально помогает тысячам людей
делать то, что мы обычно делаем.

Поэтому я благодарю вас за то, что вы предоставили всем слушателям эти утилиты:
o
o
o

--
Usenet — это замечательное публичное место, где взрослые делятся полезной информацией.

Скачивая приложения для Android, я иногда встречал приложения для архитектуры armeabi-v7a и x86.

Я прочитал несколько ссылок на архитектуры armeabi-v7a и x86. Однако в итоге я так и не смог окончательно определить, какие мобильные процессоры и архитектуры относятся к armeabi-v7a, а какие к x86.

Насколько мне известно, в устройствах Android обычно используются мобильные процессоры Snapdragon (от Qualcomm), MediaTek, Exynos (от Samsung) и Kirin (от Huawei). Почти все бренды объясняют характеристики смартфона, и почти во всех спецификациях указывается, является ли мобильный процессор 64-битным или нет. Должен ли я сделать вывод, что 64-битные мобильные процессоры (Snapdragon, MediaTek, Exynos или Kirin) относятся к архитектуре ARM?

EDIT:
Чтобы понять, какая SoC поддерживает Android-apk armeabi-v7a, а какая SoC поддерживает Android-apk x86, я изучил спецификации MediaTek Helio X30 и Snapdragon 855. В спецификации Helio X30 сказано, что он поддерживает двухъядерный ARM Cortex-A73 и четырехъядерный ARM Cortex-A53, но ARM нигде не упоминается в спецификации Snapdragon 855. Из этого следует вывод, что Helio X30 будет поддерживать armeabi-v7a Android приложения, а Snapdragon 855 не будет поддерживать приложения armeabi-v7a?

Пожалуйста, проясните мои сомнения.

2 ответа 2

Вот мои неполные краткие заметки по этому вопросу, но их достаточно, чтобы ответить на ваш вопрос.

НАБОР ИНСТРУКЦИЙ:

Процессоры изготавливаются из полупроводниковых кристаллов, обычно из монокристаллического кремния электронного класса. Они не знают английского или любого другого человеческого языка, они понимают только 0 и 1. Таким образом, разработчик процессора сообщает нам, в какой последовательности нулей и единиц мы можем проинструктировать этот конкретный процессор. Этот числовой язык инструкций стандартизирован как машинный язык, а набор машинных инструкций называется набором инструкций. Процессор может действовать только с определенным типом (типами) набора инструкций.
Наборы инструкций могут быть 8-, 16-, 32- или 64-разрядными (определяют, сколько инструкций процессор может обрабатывать одновременно), последние 2 – распространенные в наши дни.

ЯЗЫКИ НИЗКОГО УРОВНЯ:

Но написание программного кода (инструкций) непосредственно на машинном языке (исполняемом файле) практически невозможно, потому что на написание и отладку достаточно большой программы (которую в наши дни мы можем написать за несколько часов) уйдут годы. Поэтому, чтобы облегчить жизнь программистам, был разработан язык ассемблера, по-прежнему ориентированный на процессор, но относительно простой для понимания. Код, написанный на языке ассемблера, преобразуется в машинный код ассемблером — программой, написанной на машинном языке. Оба они называются языками низкого уровня.

ЯЗЫКИ ВЫСОКОГО УРОВНЯ:

Чтобы еще больше упростить взаимодействие человека с аппаратным обеспечением, были разработаны языки высокого уровня, которые не привязаны к определенному набору инструкций (обозначающему определенную архитектуру). Они идентичны человеческим языкам, поэтому их легко писать, понимать, отлаживать и применять к различным архитектурам. Код, написанный на языке высокого уровня, преобразуется в язык низкого уровня компилятором — программой, написанной на языке низкого уровня. Одним из наиболее часто используемых языков высокого уровня является C. Но иногда код предварительно не компилируется в машинный код, а выполняется напрямую (или компилируется во время выполнения) интерпретатором. Java — это один из таких языков «напиши один раз, запусти где угодно» (WORA), который компилируется в байт-код, а затем интерпретируется виртуальной машиной — снова скомпилированной программой.

ДВОИЧНЫЙ ИНТЕРФЕЙС ПРИЛОЖЕНИЯ (ABI):

Поскольку архитектурно-независимая программа (код) может быть преобразована в архитектурно-зависимый код для любого процессора, компилятор обязан позаботиться обо всех требованиях конкретной архитектуры. Это то, что определяет Application Binary Interface (ABI). Проще говоря, ABI представляет собой одну или несколько конкретных архитектур.Дополнительные сведения о встроенных ABI требуют понимания этапов сборки и компиляции; объектный код, Executable and Linkable Format (ELF), статическое (архивирование) и динамическое связывание библиотек и т.д.

Теперь перейдем к вашему вопросу:

ЧТО ТАКОЕ x86 И ARM?

x86 — это семейство наборов инструкций, в основном разработанное и произведенное Intel и AMD. ARM — еще одно семейство, разработанное одной компанией ARM Holdings и лицензированное многими производителями встраиваемых решений, включая Qualcomm, Mediatek, Samsung и Huawei. Snapdragon, Exynos и Kirin — их торговые марки. Они не являются производителями процессоров, но у них есть лицензии на включение процессоров ARM в собственные схемы System on Chip (SoC).

ЧТО ТАКОЕ SoC?

Система на кристалле (SoC) — это небольшая схема, включающая процессоры и другие компоненты, такие как графический процессор, оперативная память, флэш-память/eMMC (эквивалент жесткого диска или твердотельного накопителя), модуль Wi-Fi и Bluetooth, подключение USB, UART (последовательные порты). ), JTAG (протокол последовательной связи очень низкого уровня), GPS, модемы (для сотовой связи) и, возможно, другие.

ABI ARM:

Хотя большая часть приложений для Android написана на Java, можно программировать на родных языках, таких как C и C++, которые необходимо компилировать. Android предоставляет собственный комплект разработки (NDK), включающий (библиотеки, заголовочные файлы и) компилятор, который может компилировать код для нескольких ABI, включая armeabi-v7a ( armhf в сообществе Linux) и x86 .

Приложение для Android (Java) само по себе не зависит от конкретной архитектуры. В процессе сборки приложения Android SDK преобразует исходный код Java в байт-код (файлы .class), а затем компилирует его в файл Dalvik EXecutable (.dex), который упакован с файлами .apk. Этот байт-код Dalvik интерпретируется и запускается в отдельном экземпляре виртуальной машины Dalvik / ART для каждого приложения процессом Zygote. Или он может быть постоянно скомпилирован в собственный машинный код (.odex или .oat) в соответствии с архитектурой устройства во время установки приложения (или позже). Но если файл apk (zip) дополнительно содержит двоичные файлы/библиотеки ELF, они зависят от архитектуры. Разработчики обычно включают в свои приложения нативные библиотеки для разных архитектур.

Нативные приложения/программы/двоичные файлы/исполняемые файлы/библиотеки, созданные с помощью наборов компиляторов, ориентированных на ARM Embedded ABI v7a (armeabi-v7a), можно запускать в профиле приложения 7-й версии процессоров ARM (Armv7-A).
Код, скомпилированный с помощью инструментальных цепочек, предоставленных другими поставщиками и ориентированный на ту же архитектуру (хотя и с другими именами ABI), также должен работать на устройствах Android.

32-БИТ. ПРОТИВ. 64-БИТ:

Процессор ARM может быть 32-разрядным или 64-разрядным. Это зависит от производителей SoC, что они хотят построить со своей встроенной системой, например. Snapdragon может быть 32-битным или 64-битным. 32-разрядные процессоры ARM были улучшены для повышения производительности, и были добавлены новые возможности от версии 2 до версии 7. 64-разрядная поддержка была введена в ARMv8.

Чтобы узнать, является ли устройство 32-разрядным или 64-разрядным, необходимо проверить характеристики его SoC, а затем его процессора. Например, SoC в Redmi Note 4 — это Qualcomm Snapdragon 625 (MSM 8953), который содержит процессор Cortex-A53. Из технических характеристик Cortex-53 видно, что он основан на архитектуре ARMv8, которая может обрабатывать 2 типа наборов инструкций: aarch64 (который использует Android arm64-v8a ABI) и aarch32 (который использует Android armeabi-v7a ABI, т.е. обратно совместим с ARMv7). ).

Таким образом, он может запускать двоичные файлы/библиотеки, скомпилированные для обоих этих ABI, но не для x86 или armeabi (называемый armel в сообществе Linux; который нацелен на архитектуру ARMv5/v6 и был удален в NDK r17).

Недавно приложению нашей компании потребовалась оптимизация объема пакета, одной из которых является оптимизация пакета so.
Я не очень хорошо разбираюсь в пакете so. Я разберусь.

1. Архитектура процессора ЦП, поддерживаемая Android
  • мипс
  • мипс64
  • x86
  • x86_64
  • армеаби
  • armeabi-v7a
  • arm64-v8a
2. Что такое ЛПИ?
3. Что такое абифильтры?
  • Фильтр, определяющий создание пакета ABI для конкретного шаблона.
4. Как крупные заводы адаптируются к различным архитектурам ЦП?
  • WeChat (arm64-v8a)
  • Таобао (armeabi-v7a)
  • Alipay, мобильный телефон QQ (armeabi)
5. Процесс адаптации основного и вспомогательного ABI

6. Как нам адаптироваться?

Схема 1: адаптировать только к armeabi

  • Преимущества: в основном адаптируется ко всем архитектурам ЦП.
  • Недостатки: низкая производительность, что эквивалентно необходимости использования вспомогательного API или динамического перекодирования на большинстве мобильных телефонов.

Схема 2: применима только к armeabi-v7a

  • Аналогичным образом схема 1 фильтрует только некоторое старое оборудование, относительно сбалансированное по производительности и совместимости.

Схема 3: применима только к arm64-v8a

  • Преимущества: лучшая производительность
  • Недостатки: он может работать только на устройствах arm64-v8a, и от некоторых пользователей старых устройств следует отказаться.

Все эти три схемы возможны. В текущей адаптации приложений крупных производителей доступны эти три схемы, большинство из которых первые две.

Конкретный выбор зависит от нашего рассмотрения. Производительность — arm64-v8a, совместимость — armeabi, а баланс между производительностью и совместимостью — armeabi-v7a.

Читайте также: