armeabi v7a что это

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Armeabi v7a что это

Недавно мы рассказывали вам о том, как узнать DPI дисплея вашего Android устройства, которое необходимо знать для выбора правильного APK файла приложения, которое вы хотите установить на него вручную. Однако, при этом зачастую нужно знать еще и тип процессора: ARM, ARM64 или x86, который используется в вашем смартфоне или планшете.

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

Самым простым способом узнать тип процессора на базе которого выполнен ваш смартфон, планшет или другое Android устройство будет установить на него приложение Droid Hardware Info.

Это приложение доступно для скачивания с этой страницы Google Play Маркет совершенно бесплатно и после его запуска вы увидите на экране смартфона следующую информацию (слева — данные о смартфоне Nexus 5, справа — информация о Nexus 6):

В самой первой строке с наименованием «CPU architecture» вы увидите одно из значений: ARMv7, AArch64 или x86, а в строке «Insructions Set»: armeabi, arm64 или x86abi.

Читайте также:  что делать если зуб мудрости растет в другой зуб

Соответствие этих значений типу вашего процессора приведено ниже:

ARM: ARMv7 или armeabi

ARM64: AArch64 или arm64

x86: x86 или x86abi

Есть еще один достаточно простой способ узнать тип процессора вашего смартфона, планшета или другого устройства, который знаком пользователям Linux

Для этого вам нужно установить на свое устройство из Google Play Маркет приложение Terminal Emulator, запустить его и выполнить следующую команду:

На экране при этом отобразится информация о процессоре в следующей форме:

Как вы уже, наверняка поняли, нам нужна информация из самой первой строки «Processor:»

Xamarin. Android поддерживает несколько архитектур ЦП, включая 32-разрядные и 64-разрядные устройства. В этой статье объясняется, как выбрать для приложения одну или несколько архитектур ЦП, поддерживаемых Android. Xamarin.Android supports several CPU architectures, including 32-bit and 64-bit devices. This article explains how to target an app to one or more Android-supported CPU architectures.

Обзор архитектуры ЦП CPU Architectures Overview

При подготовке приложения к выпуску необходимо указать архитектуру ЦП платформы, которую поддерживает ваше приложение. When you prepare your app for release, you must specify which platform CPU architectures your app supports. Один APK-файл может содержать код для нескольких различных архитектур. A single APK can contain machine code to support multiple, different architectures. Каждая коллекция кода, зависящего от архитектуры, связана с двоичным интерфейсом приложения (ABI). Each collection of architecture-specific code is associated with an Application Binary Interface (ABI). Каждый интерфейс ABI определяет, как должен взаимодействовать этот машинный код с Android во время выполнения. Each ABI defines how this machine code is expected to interact with Android at run time. Дополнительные сведения о том, как это работает, см. в статье многоядерные устройства & Xamarin. Android. For more information about how this works, see Multi-Core Devices & Xamarin.Android.

Указание поддерживаемых архитектур How to Specify Supported Architectures

В Visual Studio щелкните правой кнопкой мыши проект в Обозреватель решений и выберите пункт свойства. In Visual Studio, right-click on your project under the Solution Explorer and select Properties. На странице Параметры Android проверьте раздел Свойства упаковки и убедитесь, что параметр использовать общую среду выполнения отключен (отключение позволяет явно выбрать, для какой ABI требуется поддержка). Under the Android Options page check the Packaging properties section and verify that Use Shared Runtime is disabled (turning this off allows you to explicitly select which ABIs to support). Нажмите кнопку Дополнительно и в разделе Поддерживаемые архитектурыпроверьте архитектуры, которые требуется поддерживать. Click the Advanced button and, under Supported architectures, check the architectures that you want to support:

Xamarin.Android поддерживает следующие варианты архитектуры: Xamarin.Android supports the following architectures:

Начиная с Xamarin. Android 9,2, armeabi больше не поддерживается. As of Xamarin.Android 9.2, armeabi is no longer supported.

ARMEABI-v7a – процессоры на базе ARM с аппаратными операциями с плавающей запятой и устройствами с несколькими ЦП (SMP). armeabi-v7a – ARM-based CPUs with hardware floating-point operations and multiple CPU (SMP) devices. Обратите внимание, что armeabi-v7a машинный код не будет выполняться на устройствах ARMv5. Note that armeabi-v7a machine code will not run on ARMv5 devices.

arm64-v8a – процессоры на основе архитектуры 64-bit ARMv8. arm64-v8a – CPUs based on the 64-bit ARMv8 architecture.

Процессоры x86 –, поддерживающие набор инструкций x86 (или IA-32). x86 – CPUs that support the x86 (or IA-32) instruction set. Этот набор инструкций эквивалентен инструкциям Pentium Pro, включая MMX, SSE, SSE2 и SSE3. This instruction set is equivalent to that of the Pentium Pro, including MMX, SSE, SSE2, and SSE3 instructions.

x86_64 Процессоры, поддерживающие 64-разрядный x86 (также называемый x64 и AMD64). x86_64 CPUs that support the 64-bit x86 (also referred as x64 and AMD64) instruction set.

Нацеливание на несколько платформ Targeting Multiple Platforms

Чтобы ориентироваться на несколько архитектур ЦП, можно выбрать несколько интерфейсов ABI (за счет увеличения размера файла APK). To target multiple CPU architectures, you can select more than one ABI (at the expense of larger APK file size). Можно использовать параметр создать один пакет (. apk) для каждого выбранного параметра ABI (см. описание в разделе Установка свойств упаковки), чтобы создать отдельный APK для каждой поддерживаемой архитектуры. You can use the Generate one package (.apk) per selected ABI option (described in Set Packaging Properties) to create a separate APK for each supported architecture.

Начиная с августа 2018 г. новые приложения должны будут использовать API уровня 26, а с августа 2019 г. будет необходимо выпускать 64-разрядные версии приложений в дополнение к 32-разрядным. From August 2018 new apps will be required to target API level 26, and from August 2019 apps will be required to provide 64-bit versions in addition to the 32-bit version.

Дополнительные сведения Additional Information

В некоторых ситуациях может потребоваться создать отдельный APK для каждой архитектуры (чтобы уменьшить размер APK, или потому, что приложение имеет общие библиотеки, характерные для конкретной архитектуры ЦП). In some situations, you may need to create a separate APK for each architecture (to reduce the size of your APK, or because your app has shared libraries that are specific to a particular CPU architecture). Дополнительные сведения об этом подходе см. в разделе Build ABI-пакетов apk. For more information about this approach, see Build ABI-Specific APKs.

armeabi – понятно. Эта архитектура на всех (или почти на всех) реальных гаджетах.
x86 – вроде тоже понятно. Это прежде всего для Genymotion и прочих эмуляторов, где Android x86.

А mips и armeabi-v7a используются где-нибудь?
Вангую, что v7a это просто версия armeabi, почему не ограничиваться простым armeabi?

Читайте также:  Что значит трехфазная мойка автомобиля

Источник

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

Понимание arm64-v8a, armeabi-v7a, armeabi, x86 в Android

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

Сначала поговорим о разнице между 32-битным процессором и 64-битным процессором

64-битные и 32-битные относятся к процессоруОбщий регистрШирина данных.

Первоначально дизайн операционной системы отличается,64-битная операционная системаПервоначально был разработан для удовлетворения механического проектирования и анализа,3D анимация、Редактирование видеоИ создание, иНаучные вычисленияиВысокопроизводительные вычисленияКлиентам, которым требуется много памяти и производительность с плавающей запятой в приложениях и других областях, основное внимание уделяется запуску некоторых специальных отраслевых приложений, и32-битная операционная системаОн предназначен для обычных пользователей, и основное внимание уделяется ежедневному использованию прикладного программного обеспечения.

Программное обеспечение отличается

Разный контроль над памятью

32-битная операционная системаФактическая идентифицируемая память составляет 3,5 ГБ, и 64-разрядная операционная система может фактически поддерживать 128 ГБ памяти, что также является основным отличием 64-разрядной и 32-разрядной системы по внешнему виду и фактическому значению.

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

Так называемая архитектура ARMv8 была разработана на основе архитектуры MIPS64, добавив в архитектуру ARMv7 такие функции, как технология TrustZone, технология виртуализации и усовершенствованная технология NEON SIMON.

64-битная архитектура ARMv8 содержит два состояния выполнения: AArch32 (также известный как ARMv7) и AArch64 (ARMv8). Состояние выполнения AArch64 предназначено для 64-битной технологии обработки, в которой вводится новый набор команд A64 (то есть на основе полученной архитектуры MIPS64), а состояние выполнения AArch32 будет поддерживать существующий набор команд ARM. Следовательно, 64-разрядный процессор ARM содержит как 32-разрядную архитектуру ARMv7, так и 64-разрядную архитектуру ARMv8. Поэтому:

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

В итоге, 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-разрядную версию. Это правда. От Android 4.0 до Android 4.4 Android поддерживает 64-разрядное оборудование, но это только означает, что основной драйвер поддерживает 64-разрядную версию и может работать. На вершине 64-битного оборудования, не более того. Однако программное обеспечение, работающее на верхнем уровне, как виртуальная машина Dalvik, так и виртуальная машина ART, является 32-разрядным. Другими словами, до тех пор, пока ваша система мобильной связи работает под управлением Android 4.0-4.4, даже если ваш процессор 64-разрядный, вы можете запускать 32-разрядные программы только на 32-разрядной виртуальной машине. Даже если перед вами стоит настоящая 64-разрядная программа, И при этом это не может быть установлено.

В ноябре 2011 года ARM выпустила некоторые технические подробности о ARMv8, 64-разрядной архитектуре процессора нового поколения (также известной как Cortex-A57A53), которая представляет будущее мобильных процессоров, входящих в 64-разрядные ряды. Мы должны прояснить, что в самом ARM нет технологии проектирования 64-битных чипов, он разработал ее, приобретя некоторые права на использование технологии архитектуры процессора MIPS64 и объединив некоторые функции ARM. Другими словами: из трех основных архитектур MIPS, ARM и X86 единственный ARM без 64-битной технологии был 64-битным благодаря приобретению MIPS.

Читайте также:  block offensive words что это

Источник

Многоядерные устройства и Xamarin.Android

Android может работать на нескольких различных компьютерных архитектурах. В этом документе рассматриваются различные архитектуры ЦП, для которых можно создавать приложения Xamarin.Android. В этом документе также объясняется, как упаковывать приложения Android для поддержки различных архитектур ЦП. В нем будет представлен двоичный интерфейс приложения (ABI), а также рекомендации относительно того, какие ABI следует использовать в приложении Xamarin.Android.

Обзор

Это означает, что каждое приложение Android поддерживает по крайней мере один двоичный интерфейс внедренных приложений (EABI). EABI — это соглашения, специально созданные для внедренного программного обеспечения. Типичный интерфейс EABI описывает следующие форматы:

набор инструкций ЦП;

порядок следования байтов для операций загрузки и сохранения в памяти во время выполнения;

двоичный формат объектных файлов и библиотек программ, а также допустимые и поддерживаемые типы содержимого для этих файлов и библиотек;

различные соглашения о передаче данных между кодом приложения и системой (например, порядок применения регистров и (или) стека при вызове функций, ограничения выравнивания и т. д.);

ограничения выравнивания и размера для типов перечисления, структур, полей и массивов;

список символов функций, доступных в машинном коде во время выполнения, обычно для конкретного узкого набора библиотек.

Архитектура armeabi и потокобезопасность

Описания интерфейсов ABI

Каждый ABI, поддерживаемый в Android, имеет уникальное имя.

armeabi

Это имя EABI для ЦП с архитектурой ARM, поддерживающих по меньшей мере набор инструкций ARMv5TE. Android соблюдает ABI для ARM GNU/Linux с прямым порядком байтов. Этот интерфейс ABI не поддерживает вычисления с плавающей запятой с использованием аппаратуры. Все операции с плавающей запятой выполняются вспомогательными программными функциями, которые собраны в статическую библиотеку libgcc.a компилятора. В armeabi не поддерживаются устройства SMP.

armeabi-v7a

Машинный код armeabi-v7a не выполняется на устройствах ARMv5.

arm64-v8a

Это набор 64-разрядных инструкций, основанный на архитектуре ЦП ARMv8. Эта архитектура используется в устройствах Nexus 9. В Xamarin.Android 5.1 реализована поддержка этой архитектуры (дополнительные сведения см. в разделе о поддержке 64-разрядной среды выполнения).

Это имя ABI для процессоров, поддерживающих набор инструкций, известный как x86 или IA-32. Этот интерфейс ABI соответствует набору инструкций для Pentium Pro, включая наборы для MMX, SSE, SSE2 и SSE3. Он не включает другие необязательные расширения IA-32, такие как:

Хотя платформа Google TV работает на архитектуре x86, ее не поддерживает Android NDK.

x86_64

Это имя ABI для процессоров, которые поддерживают 64-разрядный набор инструкций x86 (также известен как x64 или AMD64). В Xamarin.Android 5.1 реализована поддержка этой архитектуры (дополнительные сведения см. в разделе о поддержке 64-разрядной среды выполнения).

Формат файлов APK

AndroidManifest.xml – это файл AndroidManifest.xml в двоичном формате XML.

resources.arsc – содержит все ресурсы приложения в заранее скомпилированном виде.

МЕТА-INF – этот каталог (при наличии) содержит сведения о подписи, а также о настройке пакета и расширений.

res – содержит ресурсы, для которых в resources.arsc не существует скомпилированной версии.

Файл libmonodroid.so является обязательной собственной библиотекой для всех приложений Xamarin.Android.

Поддержка ABI для устройств Android

Каждое устройство Android поддерживает выполнение машинного кода, соответствующего одному из двух ABI:

«Основной» интерфейс ABI – обозначает машинный код, используемый в системном образе.

«Дополнительный» интерфейс ABI – обозначает необязательный ABI, который поддерживается в системном образе.

Установка собственной библиотеки Android

Алгоритм установки собственных библиотек Android существенно различается для разных версий Android.

Установка собственных библиотек в Android до версии 4.0

После установки каталог собственных библиотек будет содержать следующее:

Другими словами, libone.so не устанавливается. Это приведет к проблемам, так как libone.so отсутствует и приложение не сможет загрузить его во время выполнения. Такое поведение нелогично, но заявка о включении его в список ошибок была классифицирована как «работает ожидаемым образом».

Установка собственных библиотек в Android версий 4.0 – 4.0.3

В Android 4.0 Ice Cream Sandwich логика извлечения изменилась. Теперь Android просматривает все собственные библиотеки и для каждого файла проверяет, извлечена ли уже библиотека с таким базовым именем и выполняются ли следующие два условия:

файл еще не извлечен;

интерфейс ABI этой собственной библиотеки совпадает с основным или дополнительным интерфейсом ABI для целевого объекта.

После установки такого приложения каталог собственных библиотек будет содержать следующее:

К сожалению, результат этого алгоритма зависит от порядка файлов, что подробно описано в документе Issue 24321: Galaxy Nexus 4.0.2 uses armeabi native code when both armeabi and armeabi-v7a is included in apk (Проблема 24321: Galaxy Nexus 4.0.2 использует машинный код armeabi, если в APK есть файлы для armeabi и armeabi-v7a).

Установка собственных библиотек в Android версии 4.0.4 и выше

После установки такого приложения каталог собственных библиотек будет содержать следующее:

Xamarin.Android и интерфейсы ABI

Xamarin.Android поддерживает следующие варианты 64-разрядной архитектуры:

Начиная с августа 2018 г. новые приложения должны будут использовать API уровня 26, а с августа 2019 г. будет необходимо выпускать 64-разрядные версии приложений в дополнение к 32-разрядным.

Xamarin.Android поддерживает следующие варианты 32-разрядной архитектуры:

^ Начиная с версии Xamarin.Android 9.2 armeabi больше не поддерживается.

Объявление поддерживаемых ABI

По умолчанию Xamarin.Android применяет armeabi-v7a для сборки выпуска, а armeabi-v7a и x86 — для отладочной сборки. Поддержку других ABI можно задать на странице параметров для проекта Xamarin.Android. В Visual Studio эти значения настраиваются на странице Параметры Android в окне Свойства, на вкладке Дополнительно, как показано на следующем снимке экрана:

В Visual Studio для Mac поддерживаемую архитектуру можно выбрать на странице Android Build (Сборка Android) в разделе Project Options (Параметры проекта) на вкладке Advanced (Дополнительно), как показано на следующем снимке экрана:

Существуют ситуации, когда нужно объявить поддержку дополнительного интерфейса ABI, например в следующих случаях:

развертывание приложения на устройстве x86 ;

развертывание приложения на устройстве armeabi-v7a с обеспечением потокобезопасности.

Источник

Сказочный портал