Перейти к содержимому

Arm64 v8a armeabi v7a что это

  • автор:

Arm64 v8a armeabi v7a что это

Android development often encounters the problem of the so library placed in which directory, today a simple analysis, the difference between the cpu of each architecture, as long as the reader can roughly understand the meaning of these directories, you do not have to go deeper.

First talk about the difference between a 32-bit processor and a 64-bit processor.

  • Processor is different

  • Software is different

  • Different control of memory

1. Is lib and libs the same?
is placed in the lib is referenced, placed in libs is included.
Files placed in libs are automatically included by Eclipse. So don’t put the API in libs.
lib content will not be packaged into the APK, the content in libs will be packaged into the APK

What is the ghost of the .so library? The dynamic link library compiled by the NDK.
Some important encryption algorithms or core protocols are generally written in c and then called in java. This will avoid viewing the source code of the application after decompilation.

3. How should the .so library be stored?
The correct pose for placing a .so file is actually two sentences:
• To reduce the apk volume, keep only the two folders armeabi and armeabi-v7a and ensure that the number of .so is the same in both folders.
• Copy a copy of the third-party .so that provides only the armeabi version to the armeabi-v7a folder

BUT, there is a simple but unrecognized important rule when dealing with .so files.

You should provide as much as possible the .so files optimized for each ABI, but either they are all supported or not supported: you should not mix them. You should provide a corresponding .so file for each ABI directory.

What is the role of armeabi under libs?
stores the .so library, which is mainly compatible with different devices. It can also be said to be compatible with the CPU architecture of different Android phones.
Let’s take a look at the Android cpu
CPU type of Android device (commonly called "ABIs")

The early Android system only supported the ARMv5 CPU architecture. Do you know how many kinds of it support it now? 7 kinds!
The Android system currently supports the following seven different CPU architectures: ARMv5, ARMv7 (since 2010), x86 (since 2011), MIPS (from 2012), ARMv8, MIPS64 and x86_64 (since 2014), each associated with a corresponding ABI.
The Application Binary Interface defines how binary files (especially .so files) run on the appropriate system platform, from the instruction set used, memory aligned to available System function library. On the Android system, each CPU architecture corresponds to an ABI: armeabi, armeabi-v7a, x86, mips, arm64-v8a, mips64, x86_64.

The versions are analyzed as follows:
• mips / mips64: Very few for mobile phones to ignore
• x86 / x86_64: x86-based phones will include Intel’s instruction set dynamic transcoding tool called Houdini, which is compatible with arm .so, considering x86 1% or less Market share, x86 related two .so are also negligible
• armeabi: ARM v5 This is a fairly old version, lacking hardware support for floating point calculations and performance bottlenecks when large amounts of computation are required
• armeabi-v7a: ARM v7 current mainstream version
• arm64-v8a: 64-bit support

The so-called ARMv8 architecture is developed on the MIPS64 architecture by adding features such as TrustZone technology, virtualization technology and NEON advanced SIMD technology already in the ARMv7 architecture.

The 64-bit ARMv8 architecture includes two execution states: AArch32 (also known as ARMv7) and AArch64 (ARMv8). The AArch64 execution state introduces a new instruction set A64 (that is, based on the acquired MIPS64 architecture) for 64-bit processing technology, while the AArch32 execution state will support the existing ARM instruction set. So the 64-bit ARM processor contains both 32-bit ARMv7 and 64-bit ARMv8 architectures. therefore:

Seeing this, you must understand that the 64-bit processor of ARM 64-bit processor and computer is two completely incomprehensible concepts. He is not 64-bit capable of native backward compatibility with 32-bit programs, but through 64-bit processors. The 32-bit architecture is integrated to run 32-bit programs. To put it bluntly, it does not run 32-bit programs in 64-bit form, but runs 32-bit programs in 32-bit form.

Since the new 64-bit processor currently contains two architectures, and the process technology is not improved (28nm), and the chip area is strictly limited on mobile phones and tablets, it cannot be excessively increased, which results in an even distribution of 64-bit ARM processors. The number of transistors to each architecture is drastically reduced. That is to say, from the 32-bit architecture of 64-bit processors, for 32-bit processors of the same specification, not only is there no improvement, but performance is degraded. However, processor manufacturers must give consumers an account to better promote 64-bit, so manufacturers must improve performance in other aspects to compensate for the loss of the number of transistors in the CPU. For example, replacing a more powerful GPU, increasing memory bandwidth, multi-core virtual single core to enhance single-core performance, and jointly running sub-software to modify the running weight (to increase GPU scores, reduce the weight of CPU scores) and so on. In this way, the strengths and weaknesses, and finally reach the hands of consumers, run with the running software, there is indeed improvement, the user is happy, the manufacturers pockets also drum.

In summary, the ARM 64-bit processor is strictly more apt to call it ARM32+64. Compared with the ARM 32-bit processor, there is room for improvement, and there is room for improvement, but it is because of the reversal that has stirred up ARM. The determination to make it a bold change forward has to be said to be an improvement. But is ARM64 really useful on mobile phones? I can only say that it is really useless at the moment, but there may be in the future. (other places are collected)

A true 64-bit phone doesn’t just stay on the processor. If it’s 64-bit, it’s called a 64-bit phone. We can’t hesitate to say that this may be false publicity. Fortunately, Lenovo. Very smart, when I released the A678t and A805e publicity, I only said 64-bit processor phones.

"64-bit processor phones" and "64-bit phones" are two different concepts: as long as the processor contains 64 architecture bits, it can be called a "64-bit processor phone", which may not be able to run. 64-bit programs are only used to seize the market, and the advantage over 32-bit phones is not obvious.

The "64-bit phone" is different: it includes a 64-bit processor, a 64-bit standard system, a 64-bit Android virtual machine, and a 64-bit program. This is the true 64-bit phone!

Google officially said that Android has supported 64-bit long ago. This is true. From Android4.0 to Android4.4, Android supports 64-bit hardware, but this only means that the underlying driver supports 64-bit and can run. On top of 64-bit hardware, that’s it. However, the upper layer running software, whether it is Dalvik’s virtual machine or ART virtual machine is 32-bit. In other words, as long as your mobile phone system is Android 4.0-4.4, even if your processor is 64-bit, you can only run 32-bit programs under 32-bit virtual machines, even if 64-bit programs are in front of you. It also cannot be installed.

Android L began to really support 32-bit and 64-bit ART virtual machines, with 64-bit processors, running 64-bit software. But the problem is coming again, no software vendor is willing to develop 64-bit programs.
ARMv8 is a good set of instructions that support both future 64-bit programs and backward compatibility with existing 32-bit programs. With the support of ARMv8, future 64-bit mobile operating systems, such as Android L 64bit, can easily and efficiently support existing 32-bit apps, so you don’t have to worry about compatibility issues.

In November 2011, ARM released some of the technical details of the new generation of 64-bit architecture ARMv8 (also known as the Cortex-A57A53), representing the future of mobile processors into the 64-bit ranks. We have to be clear that ARM itself does not have 64-bit chip design technology. He has designed some of the technology usage rights of the MIPS64 processor architecture, and combined with some features of ARM. In other words: Among the three major architectures of MIPS, ARM and X86, the only ARM without 64-bit technology has obtained 64-bit by acquiring MIPS.

Архитектура процессора. Что такое armeabi-v7a и arm64-v8a

Быстро узнаем, что такое armeabi-v7a, arm64-v8a и какие приложения Вы можете установить на свое устройство.

Наверное у каждого человека, который качал приложения не с официального магазина, возникали ошибки вида: Приложение не установлено, не удалось разобрать пакет и тому подобные. Причин для этого может быть несколько, но сегодня мы рассмотрим одну из самых главных. Технический мир развивается и постоянно появляются новые технологии от компании Google и других производителей Андроид устройств. Если ближе к сути, то у каждого процессора есть своя архитектура (Набор инструкций) и их бывает несколько видов:

  • armeabi-v7a — самый популярный набор инструкций на данный момент, работает с 32-разрядными процессорами;
  • arm64-v8a — 64-разрядная архитектура, которая набирает обороты и появляется на новых устройствах все чаще, работает с 64-битными процессорами;
  • x86 и x86_64 — для процессоров Intel, которые устанавливаются на ноутбуки и планшеты.

Узнаем, какая архитектура у Вашего устройства

  1. Качаем с Google Play приложение Droid Hardware Info. Далее выполняем следующие действия: переходим в раздел -> Система -> Процессор и смотрим пункты «Архитектура процессора», а также «Набор инструкций».
  2. Если у Вас есть Telegram, заходим в настройки и листаем в самый низ, где будет написана Ваша архитектура.

архитектура Telegram

Какие игры и приложения Вы можете устанавливать?

  • Если у Вас armeabi-v7a, то выбор невелик и нужно искать файлы с поддержкой этого набора инструкций;
  • Если у Вас arm64-v8a, можно устанавливать файлы armeabi-v7a и arm64-v8a;
  • x86 — только x86, x86_64 — можно скачивать x86 и x86_64.

Итог — если Вы не хотите разбираться во всем этом, просто старайтесь скачивать файлы с armeabi-v7a, они поддерживаются почти везде.

Но есть исключения:

  1. Если на устройстве с процессором arm64-v8a установлена 32-разрядная операционная система, то можно будет устанавливать только файлы armeabi-v7a.
  2. С выходом новой версии Android 14, при установке приложений armeabi-v7a, система предупреждает, что в скором времени Google откажется от поддержки 32-битных версий и останется только arm64-v8a. Насколько быстро произойдет переход — неизвестно. Но вряд ли это будет быстро.

Если у Вас появились дополнительные вопросы — задавайте их в комментариях, мы постараемся ответить.

Как определить архитектуру вашего Android смартфона или планшета: armeabi-v7a, arm64-v8a, x86 и x86_64

Архитектура процессора вашего Android-устройства определяет, какие приложения и компоненты с ним совместимы.

Эта информация может быть полезна при установке APK-файлов, загруженных с таких сайтов как APKMirror, APKPure, APKCombo и других. В настоящий момент, выпускаются APK для четырёх архитектур: armeabi-v7a (arm), arm64-v8a (aarch64), x86 (i386) и x86_64.

В этой статье мы расскажем, как узнать архитектуру вашего Android-смартфона или планшета, используя приложение CPU X или информацию в настройках устройства.

Содержание

Определение архитектуры с помощью приложения CPU X

Приложение CPU X предоставляет информацию о вашем устройстве, включая архитектуру процессора. Вот как его использовать:

  • Установите приложение CPU X из Google Play Маркет.
  • Запустите приложение и откройте вкладку Процессор (Device).
  • В разделе «Процессор» найдите строку Набор инструкций (Instruction Sets). Здесь будет указана архитектура вашего устройства (armeabi-v7a, arm64-v8a, x86 или x86_64).

Определение архитектуры через настройки Android-устройства:

  • Откройте настройки на вашем Android-устройстве.
  • Найдите раздел «О телефоне» или «О планшете» (зависит от устройства).
  • Ищите информацию о процессоре или модели устройства и проконсультируйтесь с информацией о производителе. Обычно модель процессора указывает на архитектуру, которую вы ищете (например, Snapdragon 865 — это процессор архитектуры arm64-v8a).

Заключение

Определение архитектуры вашего Android-устройства важно для того, чтобы установить совместимые приложения и компоненты. Вы можете использовать приложение CPU X или информацию в настройках устройства, чтобы узнать архитектуру вашего процессора. Теперь, зная архитектуру вашего устройства, вы сможете установить правильные версии приложений и наслаждаться их работой на вашем смартфоне или планшете.

Русские Блоги

Android arm64-v8a, armeabi-v7a, armeabi, x86 подробное объяснение

Недавно при упаковке с флаттером я столкнулся с ситуацией, когда упаковка не могла быть напечатана. Я долго проверял причину и обнаружил, что это было вызвано отсутствием конфигурации руки. После того, как она была экипирована, она разыгралась. Я воспользовался этой возможностью, чтобы изучить abi с нуля.

перед началом

Прежде чем начать, вам нужно знать lib, libs и т. Д.
1. lib и libs
Ссылки на те, что помещены в lib, включены в библиотеки.
Файлы, помещенные в библиотеки, будут автоматически включены редактором. Так что не ставьте API в библиотеках.
Содержимое библиотеки lib не будет упаковано в APK, содержимое библиотеки li будет упаковано в APK

Два . так библиотека
Библиотека динамических ссылок, скомпилированная из NDK.
Некоторые важные алгоритмы шифрования или базовые протоколы обычно пишутся на языке c, а затем вызываются в java. Это позволяет избежать просмотра исходного кода приложения после декомпиляции.

Три . как хранить так библиотеки
Правильная позиция для размещения файла .so — это два предложения:
• Чтобы уменьшить размер apk, оставьте только две папки armeabi и armeabi-v7a и убедитесь, что число .so в этих двух папках одинаково
• Для стороннего .so, который предоставляет только версию armeabi, сделайте копию в папку armeabi-v7a
Правила хранения так:
Вы должны предоставить .so файлы, оптимизированные для каждого ABI, насколько это возможно, но поддерживаются все или все: вы не должны смешивать их. Вы должны предоставить соответствующий файл .so для каждого каталога ABI.
По вопросам хранения вы можете посмотретьЭта
4. Какова роль armeabi и т. Д. Под libs
хранит библиотеку .so, которая в основном совместима с различными устройствами, а также, как можно сказать, особенно совместима с архитектурой ЦП различных телефонов Android.
Давайте потянем процессор Android
Тип процессора устройства Android (часто называемый «ABI»)

Введение в архитектуру

Ранние системы Android почти только поддерживали архитектуру процессора ARMv5, а затем были разработаны для поддержки семи различных архитектур процессоров: ARMv5, ARMv7 (с 2010 года), x86 (с 2011 года), MIPS (с 2012 года), ARMv8 , MIPS64 и x86_64 (с 2014 года), каждый связан с соответствующим ABI.
Двоичный интерфейс приложения (двоичный интерфейс приложения) определяет, как двоичные файлы (особенно файлы .so) работают на соответствующей системной платформе, от используемого набора инструкций, выравнивания памяти до доступного Библиотека системных функций. В системе Android каждая архитектура процессора соответствует ABI: armeabi, armeabi-v7a, x86, mips, arm64-v8a, mips64, x86_64.
Но последние официальные документы Google удалили mips и armv5, как показано на рисунке:

Анализ каждой версии выглядит следующим образом:
• mips / mips64: редко используется на мобильных телефонах и может игнорироваться (последняя документация Google больше не поддерживается)
• x86 / x86_64: мобильные телефоны с архитектурой x86 будут включать в себя инструмент динамического транскодирования набора инструкций под названием Houdini, предоставляемый Intel для обеспечения совместимости с arm .so, затем рассмотрите x86 1% или менее Доля рынка, две .so, связанные с x86, также незначительны
• armeabi: ARM v5. Это довольно старая версия, в которой отсутствует аппаратная поддержка для вычислений с плавающей запятой, и имеются узкие места в производительности, когда требуются большие объемы вычислений.
• armeabi-v7a: ARM v7
• arm64-v8a: поддержка 64-бит,Текущая основная версияХотя многие блоги в Интернете говорят, что версия v7 является основной версией, я лично протестировал многие мобильные телефоны, все из которых основаны на архитектуре arm64-v8a. Тестовые модели включают Xiaomi 5-Xiaomi 9, Huawei P30, Huawei mate10 и Charm Blue 2. архитектура v8
Запрос командной строки ЦП мобильного телефона:

Нет картины без правды:

Существует только один неизвестный телефон с операционной системой Android 4.3, который использует архитектуру v7.

Для 64-битных телефонов и 64-битных процессоров

ARM64-битный процессор и компьютерный 64-битный процессор — это две совершенно несовместимые концепции: он не является 64-битной нативно совместимой с 32-битными программами, но работает 32 через 32-битную архитектуру, интегрированную в 64-битный процессор. Битовая программа. Проще говоря, он не запускает 32-разрядные программы в 64-разрядной форме, но запускает 32-разрядные программы в 32-разрядной форме.

Поскольку новый 64-разрядный процессор в настоящее время включает в себя две архитектуры, а технология процесса не была улучшена (28 нм), в то же время на мобильных телефонах и планшетах площадь чипа строго ограничена и не может быть чрезмерно увеличена, что приводит к среднему распределению 64-разрядных процессоров ARM. Количество транзисторов в каждой архитектуре резко сократилось, то есть из 32-разрядной архитектуры 64-разрядных процессоров для 32-разрядных процессоров с одинаковыми характеристиками они не только не улучшились, но и производительность снизилась в определенном масштабе. Однако производители процессоров должны объяснить потребителям, как лучше продвигать 64-разрядные системы, поэтому производители должны повысить производительность в других аспектах, чтобы компенсировать потери, вызванные сокращением числа транзисторов ЦП. Например: замените более мощный графический процессор, увеличьте пропускную способность памяти, многоядерный виртуальный одноядерный для повышения производительности одноядерного, совместные поставщики программного обеспечения для работы, чтобы изменить веса работы (повысить оценку GPU, снизить вес процессора) и т. Д. Таким образом, приобретая сильные стороны и избегая недостатков и, наконец, попадающих в руки потребителей, они работают с запущенным программным обеспечением, оно действительно улучшилось, пользователи довольны, карманы производителя также выпирают.

Таким образом, битовый процессор ARM64 более точно называется ARM32 + 64 в строгом смысле слова. По сравнению с битовым процессором ARM32, он имеет место для регресса и возможности для улучшения, но именно из-за регрессии, который стимулировал прогресс ARM Определено, что он внесет смелые и смелые изменения, и это должно быть улучшением. Но действительно ли ARM64 полезен для мобильных телефонов? Я могу только сказать, что это действительно бесполезно в данный момент, но это может произойти в будущем. (Собранный в другом месте) Таким образом, в строгом смысле ARM64-битный процессор более точно называется ARM32 + 64. По сравнению с ARM32-битным процессором он имеет некоторые недостатки и возможности для улучшения, но это из-за Эта регрессия подтолкнула ARM к решимости добиться прогресса, что позволило ему внести радикальные изменения, что, по-видимому, является улучшением. Но действительно ли ARM64 полезен для мобильных телефонов? Я могу только сказать, что это действительно бесполезно в данный момент, но это может произойти в будущем. (Искал в другом месте)

Настоящий 64-разрядный мобильный телефон не просто остается на процессоре. Если его называют 64-разрядным мобильным телефоном только потому, что его процессор 64-разрядный, мы можем без колебаний сказать, что это может быть ложной пропагандой. К счастью, Lenovo Очень умно, когда были выпущены A678t и A805e, они говорили только о телефонах с 64-битным процессором.
«64-разрядный телефон» и «64-разрядный телефон» — это две разные концепции: если процессор содержит 64 архитектурных бита, его можно назвать «64-разрядным процессором» «Мобильный телефон», этот вид мобильного телефона, возможно, не сможет запускать 64-разрядные программы, но используется только для захвата рынка, по сравнению с 32-разрядными мобильными телефонами, преимущество не очевидно.

«64-разрядный мобильный телефон» отличается: он содержит 64-разрядный процессор, 64-разрядную стандартную систему, 64-разрядную виртуальную машину Android и 64-разрядную программу. Это настоящий 64-разрядный мобильный телефон!
Представители Google заявили, что Android уже давно поддерживает 64-разрядные версии, это правда, от Android4.0 до Android4.4, системы Android поддерживают 64-разрядное оборудование, но это Это означает только то, что базовый драйвер поддерживает 64-битные и может работать на 64-битном оборудовании, и ничего более. Однако программное обеспечение, работающее на верхнем уровне, будь то виртуальная машина Dalvik или виртуальная машина ART, является 32-разрядным. Другими словами, до тех пор, пока ваша система мобильной связи работает под управлением Android 4.0-4.4, даже если ваш процессор 64-разрядный, вы можете запускать 32-разрядные программы только на 32-разрядной виртуальной машине, даже если перед вами стоят настоящие 64-разрядные программы, Это не может быть установлено. ,

Однако Google официально объявил об обязательной 64-битной архитектуре в начале этого года.

Еще в январе этого года (2019 г.) Google выпустил уведомление о том, что с 1 августа этого года перечисленные приложения, помимо предоставления 32-разрядных версий, также должны предоставлять 64-разрядные версия.

Следовательно, больше невозможно принудительно использовать только архитектуру armeabi перед проектом.
Что конкретно означает поддержка 64-битной версии?
Если ваше приложение написано полностью на Java или Kotlin и не содержит никакой встроенной поддержки, то это означает, что приложение уже поддерживает 64-битную версию.
Однако в приложении используется любая встроенная поддержка (например, библиотека), поэтому вам необходимо обеспечить разные версии поддержки этих файлов и разных архитектур ЦП.
Следует отметить, что иногда в нашем собственном коде встроенная поддержка действительно не используется, но в нее включены некоторые сторонние библиотеки, используемые в приложении.
В настоящее время наиболее надежным способом является анализ файла APK, созданного окончательной упаковкой, для определения необходимости обеспечения поддержки 64-разрядной архитектуры.

Конфигурация упаковки

Трещина
Эта команда может быть заключена в соответствии с различными правилами, такими как abi, плотность экрана (например, ldpi, hdpi и т. д.)

Включить включено, а исключить не включено. Каждый элемент, включенный в конфигурацию, будет генерировать пакет apk.

Однако эта конфигурация создаст два пакета, один из которых содержит только библиотеку x86 so, а другой — только библиотеку armabi so. Очевидно, не соответствует потребностям

Фильтр ndk
Эта инструкция может быть настроена для упаковки только той библиотеки, которую вы настраиваете, и она не будет упакована, если она не настроена, что очень гибко.

Эта конфигурация упакует библиотеку so из трех пакетов armeabi, armeabi-v71, arm64-v8a в apk, в отличие от split, которая будет воспроизводить apk для каждого пакета.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *