Armv8 a какие процессоры
Роль CPU и GPU от ARM на рынке
Несмотря на то, что компания ARM является автором и разработчиком одноимённой архитектуры, которая, повторимся, сейчас используется в подавляющем большинстве мобильных процессоров, её решения в виде ядер и графических ускорителей не пользуются популярностью у крупных производителей смартфонов. К примеру, справедливо считается, что флагманские коммуникаторы на Android OS должны иметь процессор Snapdragon с ядрами Krait и графический ускоритель Adreno от Qualcomm, чипсеты этой же компании используются в смартфонах на Windows Phone, а некоторые производители гаджетов, к примеру, Apple, разрабатывают собственные ядра. Почему же в настоящее время сложилась именно такая ситуация?
Возможно, часть причин может лежать глубже, но одна из них - отсутствие чёткого позиционирования CPU и GPU от ARM среди продуктов других компаний, вследствие чего разработки компании воспринимаются как базовые компоненты для использования в устройствах B-брендов, недорогих смартфонах и создания на их основе более зрелых решений. К примеру, компания Qualcomm почти на каждой своей презентации повторяет, что одной из её главных целей при создании новых процессоров является уменьшение энергопотребления, а её ядра Krait, будучи доработанными ядрами Cortex, стабильно показывают более высокие результаты по производительности. Аналогичное утверждение справедливо и для чипсетов Nvidia, которые ориентированы на игры, ну а что касается процессоров Exynos от Samsung и A-серии от Apple, то они имеют свой рынок за счёт установки в смартфоны этих же компаний.
Вышесказанное совершенно не значит, что разработки ARM значительно хуже процессоров и ядер сторонних компаний, но конкуренция на рынке в конечном итоге идет покупателям смартфонов только на пользу. Можно сказать, что ARM предлагает некие заготовки, приобретая лицензию на которые, производители могут уже самостоятельно их доработать.
big.LITTLE IKS (миграция между ядрами)
Более сложная реализация архитектуры big.LITTLE - объединение нескольких реальных ядер (как правило двух) в одно виртуальное, управляемое ядром операционной системы, которое решает, какие задействовать ядра - энергоэффективные или производительные. Разумеется, виртуальных ядер также несколько - на иллюстрации приведен пример схемы IKS, где в каждом из четырёх виртуальных ядер находятся по одному ядру Cortex-A7 и Cortex-A15.
ARM Limited
Компания ARM, фактически, является монополистом в своей области, и подавляющее большинство современных смартфонов и планшетов на различных мобильных операционных системах используют процессоры именно на архитектуре ARM. Производители чипов лицензируют у ARM отдельные ядра, наборы инструкций и сопутствующие технологии, причём стоимость лицензий значительно разнится в зависимости от типа процессорных ядер (это могут быть как маломощные бюджетные решения, так и ультрасовременные четырёхъядерные и даже восьмиядерные чипы) и дополнительных компонентов. Годовой отчёт о прибыли ARM Limited за 2006 год показал выручку в 161 миллион долларов за лицензирование около 2,5 миллиардов процессоров (в 2011 году этот показатель составил уже 7,9 млрд), что означает примерно 0,067 долларов за один чип. Впрочем, по озвученной выше причине, это очень усреднённый показатель из-за разницы в ценах на различные лицензии, и с тех пор прибыль компании должна была вырасти многократно.
В настоящее время ARM-процессоры имеют очень широкое распространение. Чипы на этой архитектуре используются повсюду, вплоть до серверов, но чаще всего ARM можно встретить во встраиваемых и мобильных системах, начиная с контроллеров для жёстких дисков и заканчивая современными смартфонами, планшетами и прочими гаджетами.
Qualcomm Snapdragon 410, 610, 615, 808 и 810
Вслед за Apple свои 64-битные ARM-процессоры поспешила анонсировать компания Qualcomm, причем сразу пять моделей. Правда, пока ни одна из них в коммерческих смартфонах или планшетах не применяется. Скорее всего, расцвет эпохи 64-битных Android-устройств состоится в начале 2015 года на выставках CES и MWC.
Однокристальная система Snapdragon 410 (MSM8916) – младшая из анонсированной 64-битной линейки Qualcomm. Она включает в себя четыре ядра Cortex-A53 с частотой от 1,2 ГГц, графический ускоритель Adreno 306 и, что интереснее всего, навигационный модуль с поддержкой спутниковых сетей GPS, ГЛОНАСС и даже китайской Beidou. Применять Snapdragon 410 планируют в недорогих смартфонах на базе Android, Windows Phone и Firefox OS.
Те же четыре ядра Cortex-A53, что у 410-того, содержит чип Snapdragon 610 (MSM8936), вот только графика у него улучшенная Adreno 405. Тогда как Snapdragon 615 (MSM8939) схож с 610-тым графикой, но процессорных ядер Cortex-A53 у него вдвое больше – восемь Cortex-A53.
Но главный вопрос: когда именно компания Qualcomm представит собственную процессорную архитектуру на основе ARMv8, как это было со Scorpion и Krait (модифицированные ARMv7)?
Предоставляйте только файлы .me с архитектурой armeabi и игнорируйте другие ABI
Все устройства x86 / x86_64 / armeabi-v7a / arm64-v8a поддерживают .so-файлы архитектуры armeabi, поэтому удаление .so-файлов из других ABI кажется хорошим способом уменьшить размер APK. Но на самом деле это не так: это влияет не только на производительность и совместимость библиотеки функций.
Устройства x86 могут очень хорошо работать с библиотеками ARM-типа, но нет гарантии, что 100% из них не потерпят крах, особенно на старых устройствах. 64-разрядные устройства (arm64-v8a, x86_64, mips64) могут запускать 32-разрядные библиотеки, но работать в 32-разрядном режиме и запускать 32-разрядные версии компонентов ART и Android на 64-разрядных платформах. Вы потеряете оптимизированную 64-разрядную версию. Перформанс (АРТ, веб-просмотр, медиа и др.).
Это неправильное оправдание для уменьшения размера пакета APK, поскольку вы также можете загружать указанную ABI-версию APK на рынке приложений. Для создания различных ABI-версий APK можно настроить в build.gradle следующим образом:
Подавляющее большинство современных гаджетов используют процессоры на архитектуре ARM, разработкой которой занимается одноимённая компания ARM Limited. Что интересно, компания сама не производит процессоры, а только лицензирует свои технологии для сторонних производителей чипов. Помимо этого, компания также разрабатывает процессорные ядра Cortex и графические ускорители Mali, которых мы обязательно коснёмся в этом материале. Прежде чем приступить к нему, рекомендуем ознакомиться с нашими предыдущими статьями по этой теме: “Я знаю: мобильные процессоры. Вводная часть”, “Я знаю: мобильные процессоры. Компания Qualcomm” и “Я знаю: мобильные процессоры. Компания Intel”.
Референсные ядра ARM Limited
Первыми процессорными ядрами ARMv8, разработанными непосредственно компанией ARM Limited, стали Cortex-A53 и A57. Ядро A53 является среднеуровневым решением с производительностью 2,3 DMIPS/МГц, что находится примерно по середине между нынешними Cortex-A7 (1,9 DMIPS/МГц) и A9 (2,5 DMIPS/МГц). Тогда как A57 занимает верхний сегмент, ведь его быстродействие (4,1 DMIPS/МГц) превосходит показатели обеих 32-битных флагманов: Cortex-A15 (3,5 DMIPS/МГц) и А17 (4 DMIPS/МГц).
Помимо лицензирования референсных процессорных ядер компания ARM Limited продает расширенные лицензии, позволяющие чипмейкерам по своему усмотрению модифицировать архитектуру ARM. Такие лицензии есть, к примеру, у Apple, Qualcomm и NVIDIA. Поэтому ничто не мешает производителям процессоров создавать собственные решения на базе ARMv8, существенно отличающиеся от референсных Cortex-A53 и A57.
big.LITTLE (миграция между кластерами)
Первым чипсетом на архитектуре ARM big.LITTLE стал процесссор Samsung Exynos 5 Octa. В нём используется оригинальная схема big.LITTLE “4+4”, что означает объединение в два кластера (отсюда и название схемы) на одном кристалле четырёх высокопроизводительных ядер Cortex-A15 для ресурсоёмких приложений и игр и четырёх энергосберегающих ядер Cortex-A7 для повседневной работы с большинством программ, причём в один момент времени могут работать ядра только одного типа. Переключение между группами ядер происходит практически мгновенно и незаметно для пользователя в полностью автоматическом режиме.
ARM big.LITTLE
В качестве высокотехнологичного решения проблемы энергопотребления современных процессоров ARM предлагает технологию big.LITTLE, суть которой заключается в объединении на одном чипе ядер различных типов, как правило, одинакового количества энергосберегающих и высокопроизводительных.
Существует три схемы работы ядер различного типа на одном чипе: big.LITTLE (миграция между кластерами), big.LITTLE IKS (миграция между ядрами) и big.LITTLE MP (гетерогенный мультипроцессинг).
Cortex-A7
Android arm64-v8a, armeabi-v7a, armeabi, x86 подробное объяснение
Недавно при упаковке с флаттером я столкнулся с ситуацией, когда упаковка не могла быть напечатана. Я долго проверял причину и обнаружил, что это было вызвано отсутствием конфигурации руки. После того, как она была экипирована, она разыгралась. Я воспользовался этой возможностью, чтобы изучить abi с нуля.
Почему вам нужно сосредоточиться на .so файлах
Если в проекте используется NDK, он сгенерирует файл .so, поэтому, очевидно, вы уже обращаете на него внимание. Если просто использоватьJavaПри языковом кодировании вы можете подумать о том, что вам не нужно обращать внимание на файл .so, поскольку Java является кроссплатформенным. Но на самом деле, даже если вы используете в своем проекте только язык Java, во многих случаях вы можете не осознавать, что библиотека функций или библиотека механизма, от которой зависит проект, имеет встроенные файлы .so и зависит от различных ABI.
Например, проект использует библиотеку поддержки RenderScript,OpenCVUnity, android-gif-drawable, SQLCipher и т. Д., Вы включили файл .so в сгенерированный файл APK, и вам нужно обратить внимание на файл .so.
ABI, поддерживаемый приложением Android, зависит от .so файла в APK, расположенном в каталоге lib / ABI, где ABI может быть одним из семи ABI, упомянутых выше.
Native Libs MonitorЭто приложение может помочь нам понять, какие файлы .so используются APK, установленным на телефоне, и из каких библиотек функций или сред приходят файлы .so.
Конечно, мы также можем декомпилировать приложение, чтобы получить эту информацию, но это довольно хлопотно.
Многие устройства поддерживают более одного ABI. Например, устройства ARM64 и x86 также могут одновременно запускать двоичные пакеты armeabi-v7a и armeabi. Но лучше предоставить бинарный пакет соответствующей платформы для конкретной платформы.В этом случае при запуске имеется на один уровень имитации меньше (например, виртуальный слой, который имитирует руку на устройстве x86), чтобы получить лучшую производительность (благодаря новейшей архитектуре Обновления, такие как аппаратное обеспечение, больше регистров, улучшенная векторизация и т. Д.).
Мы можем использовать Build.SUPPORTED_ABIS, чтобы получить список ABI, поддерживаемых устройствами, отсортированными по предпочтениям. Но вы не должны читать его из своего приложения, потому что, когда менеджер пакетов Android устанавливает APK, он автоматически выберет .so файл, предварительно скомпилированный для соответствующего системного ABI в пакете APK, если он находится в соответствующем каталоге lib / ABI. Если есть файл .so.
Apple A7
Первым и пока единственным 64-битным ARM-процессором, который уже применяется в смартфонах и планшетах, является Apple A7. Построен он на фирменной архитектуре Apple Cyclone, совместимой с ARMv8. Это вторая разработанная внутри компании процессорная архитектура; первой же была Swift (чипы A6 и A6X, семейство ARMv7).
Процессорных ядер у однокристальной системы A7 только два (частота до 1,4 ГГц), но присутствует графический ускоритель PowerVR G6430 с четырьмя кластерами ядер. Быстродействие чипа A7 в процессорозависимых задачах выросло примерно в полтора раза по сравнению с А6, тогда как в различных графических тестах прирост составляет от двух до трех раз.
А вот теоретическую возможность работать с большим объемом оперативной памяти благодаря 64-битной архитектуре процессора A7 устройства под управлением iOS пока не ощущают. У iPhone 5s, iPad Air и iPad mini Retina всего лишь 1 Гбайт оперативки; и вряд ли в новом поколении мобильных устройств Apple объем ОЗУ вырастит больше чем вдвое.
Сortex-A9
Ещё пару лет назад ядра Cortex-A9 считались топовым решением и использовались как в традиционных одноядерных, так и более мощных двухъядерных чипах, например Nvidia Tegra 2 и Texas Instruments OMAP4. В настоящее время процессоры на Cortex-A9, выполненные по 40-нанометровому техпроцессу не теряют популярность и используются во многих смартфонах среднего сегмента. Рабочая частота таких процессоров может составлять от 1 до 2 и более гигагерц, но обычно она ограничивается 1,2-1,5 ГГц.
Нововведения ARMv8
Обновленную архитектуру процессоров семейства ARMv8 окрестили именем AArch64. Она получила 64-битный набор инструкций и возможность работать с большим объемом оперативной памяти (4 Гбайт и больше). Само собой, предусмотрена совместимость с 32-битными приложениями (AArch32). Другими важными нововведениями ARMv8 стали:
1. Решите предыдущий скриншот:
Из скриншота видно, что первый проект имеетarm64-v8aбезx86Каталог, а не во втором проектеarm64-v8aИмеяx86Справочник. Первый проект импортируется во второй проект в качестве ссылки на проект.
Cortex-A5
Ядро Cortex-A5 используются в недорогих процессорах для наиболее бюджетных устройств. Такие устройства предназначены только для выполнения ограниченного круга задач и запуска простых приложений, но совершенно не рассчитаны на ресурсоёмкие программы и, тем более, игры. В качестве примера гаджета с процессором на Cortex-A5 можно назвать Highscreen Blast, который получил чип Qualcomm Snapdragon S4 Play MSM8225, содержащий два ядра Cortex-A5 с тактовой частотой 1,2 ГГц.
Файлы .So, скомпилированные с версией платформы Android-21, работают на устройствах Android-15
При использовании NDK вы можете использовать последнюю платформу компиляции, но на самом деле это неправильно, потому что платформа NDK не имеет обратной совместимости, но совместима с прямой. Рекомендуется использовать платформу компиляции, соответствующую minSdkVersion приложения.
Это также означает, что когда вы импортируете предварительно скомпилированный файл .so, вам необходимо проверить версию платформы, на которой он был скомпилирован.
Заключение
Микропроцессоры на архитектуре ARM успешно завоевали рынок мобильных устройств благодаря низкому энергопотреблению и сравнительно большой вычислительной мощности. Раньше с ARM конкурировали другие RISC-архитектуры, например, MIPS, но сейчас у неё остался только один серьёзный конкурент - компания Intel с архитектурой x86, которая, к слову, хотя и активно борется за свою долю рынка, пока не воспринимается ни потребителями, ни большинством производителей всерьёз, особенно при фактическом отсутствии флагманов на ней (Lenovo K900 сейчас уже не может конкурировать с последними топовыми смартфонами на ARM-процессорах).
А как вы думаете, сможет ли кто-нибудь потеснить ARM, и как дальше сложится судьба этой компании и её архитектуры?
Об истории архитектуры ARM, специфике деятельности компании ARM Limited и поколениях процессоров ARMv5, ARMv6 и ARMv7 вы можете прочитать в статье «Процессоры ARM: особенности архитектуры, отличия и перспективы». А про популярные модели ARMv7-чипов производства Qualcomm, NVIDIA, Samsung, Apple, MediaTek и др. подробно рассказано в статьях «Процессоры ARM: производители и модели» и «Процессоры ARM: обновление модельного ряда».
Введение в архитектуру
Ранние системы 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.
MediaTek MT6732, MT6752, MT6795
Не могла долго оставаться в стороне 64-битной гонки и компания MediaTek, всего за несколько лет превратившаяся из мелкого производителя процессоров для китайских клонов iPhone в одного из крупнейших в мире чипмейкеров, пусть и безфабричного. Впрочем, Apple и Qualcomm собственных производственных линий по «штамповке» полупроводников тоже не имеют.
Однокристальные системы MediaTek MT6732 и MT6752 должны составить конкуренцию чипам Snapdragon 610 и 615. У них четыре и восемь процессорных ядер Cortex-A53 (частота 1,5 и 2 ГГц соответственно) и одинаковая графика Mali-T760 (разработка ARM Limited). Старший же чип MT6795 стал ответом Snapdragon 810: архитектура big.LITTLE, по четыре ядра Cortex-A57 и A53 с частотой 2,2 ГГц, а также графический ускоритель PowerVR G6200.
4. Предложения
- Чтобы уменьшить размер apk, сохраняются только две папки armeabi и armeabi-v7a, и количество .so в этих двух папках является постоянным
- Для стороннего .so, который предоставляет только версию armeabi, сделайте копию в папку armeabi-v7a как есть
Ранние системы Android почти поддерживали только процессоры ARMv5архитектураВы знаете, сколько видов он поддерживает сейчас? 7 видов!
В настоящее время система Android поддерживает следующие семь различных архитектур ЦП: 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.
3. Решение:
Решение состоит в том, чтобы загрузить соответствующие файлы x86 so из официального Альянса, поместить их в каталог x86 и удалить каталог arm64-v8a. Сохраняйте согласованность всех файлов so, а именно: если вы хотите добавить каталог armeabi-v8a и поместить файлы сторонних файлов, связанные с armeabi-v8a, так, чтобы файлы ниже, то другие ваши файлы так должны иметь соответствующий armeabi-v8a Версия, в противном случае будет сообщено об ошибке.
Cortex-A8
Ядро Cortex-A8 не так распространено, как его “соседи”, Cortex-A7 и Cortex-A9, но всё же используется в различных гаджетах начального уровня. Рабочая тактовая частота чипов на Cortex-A8 может составлять от 600 МГц до 1 ГГц, но иногда производители разгоняют процессоры и до более высоких частот. Особенностью ядра Cortex-A8 является отсутствие поддержки многоядерных конфигураций (то есть, процессоры на этих ядрах могут быть только одноядерными), а выполняются они по 65-нанометровому техпроцессу, который уже считается устаревшим.
Графические ускорители Mali
Помимо процессоров, ARM также разрабатывает и графические ускорители семейства Mali. Подобно процессорам, графические ускорители характеризуются множеством параметров, например, уровнем сглаживания, интерфейсом шины, кэшем (сверхбыстрая память, используемая для повышения скорости работы) и количеством “графических ядер” (хотя, как мы писали в прошлой статье, этот показатель, несмотря на похожесть с термином, использующимся при описании CPU, практически не влияет на производительность при сравнении двух GPU).
Первым графическим ускорителем ARM стал ныне неиспользуемый Mali 55, который был использован в сенсорном телефоне LG Renoir (да-да, самом обычном сотовом телефоне). GPU не использовался в играх - только для отрисовки интерфейса, и обладал примитивными по нынешним меркам характеристиками, но именно он стал “родоначальником” серии Mali.
С тех пор прогресс шагнул далеко вперёд, и сейчас немалое значение имеют поддерживаемые API и игровые стандарты. К примеру, поддержка OpenGL ES 3.0 сейчас заявлена только в самых мощных процессорах вроде Qualcomm Snapdragon 600 и 800, а, если говорить о продукции ARM, то стандарт поддерживают такие ускорители, как Mali-T604 (именно он стал первым графическим процессором ARM, выполненным на новой микроархитектуре Midgard), Mali-T624, Mali-T628, Mali-T678 и некоторые другие близкие к ним по характеристикам чипы. Тот или иной GPU, как правило, тесно связан с ядром, но, тем не менее, указывается отдельно, а, значит, если вам важно качество графики в играх, то имеет смысл посмотреть на название ускорителя в спецификациях смартфона или планшета.
Есть у ARM в линейке и графические ускорители для смартфонов среднего сегмента, наиболее распространёнными среди которых являются Mali-400 MP и Mali-450 MP, которые отличаются от своих старших братьев сравнительно небольшой производительностью и ограниченным набором API и поддерживаемых стандартов. Несмотря на это, указанные GPU продолжают использоваться в новых смартфонах, к примеру, Zopo ZP998, который получил графический ускоритель Mali-450 MP4 (улучшенную модификацию Mali-450 MP) вдобавок к восьмиядерному процессору MTK6592.
Предположительно, в конце 2014 года должны появиться смартфоны с новейшими графическими ускорителями ARM: Mali-T720, Mali-T760 и Mali-T760 MP, которые были представлены в октябре 2013 года. Mali-T720 должен стать новым GPU для недорогих смартфонов и первым графическим процессором этого сегмента с поддержкой Open GL ES 3.0. Mali-T760, в свою очередь, станет одним из наиболее мощных мобильных графических ускорителей: по заявленным характеристикам, GPU имеет 16 вычислительных ядер и обладает поистине огромной вычислительной мощностью, 326 Гфлопс, но, в то же время, в четыре раза меньшим энергопотреблением, чем упомянутый выше Mali-T604.
2. Скриншот после решения:
Из скриншота видно, что каталог libs в первом и втором проектах - это каталоги armeabi-v7a, armeabi и x86, которые являются согласованными. Первый проект импортируется во второй проект в качестве ссылки на проект.
Cortex-A15
Конфигурация упаковки
Трещина
Эта команда может быть заключена в соответствии с различными правилами, такими как abi, плотность экрана (например, ldpi, hdpi и т. д.)
Включить включено, а исключить не включено. Каждый элемент, включенный в конфигурацию, будет генерировать пакет apk.
Однако эта конфигурация создаст два пакета, один из которых содержит только библиотеку x86 so, а другой - только библиотеку armabi so. Очевидно, не соответствует потребностям
Фильтр ndk
Эта инструкция может быть настроена для упаковки только той библиотеки, которую вы настраиваете, и она не будет упакована, если она не настроена, что очень гибко.
Эта конфигурация упакует библиотеку so из трех пакетов armeabi, armeabi-v71, arm64-v8a в apk, в отличие от split, которая будет воспроизводить apk для каждого пакета.
Компания ARM представила первую за последнее десятилетие совершенно новую архитектуру ARMv9. Основной упор был сделан на вычислительной мощности, безопасности и искусственном интеллекте. Наряду с этим были представлены новые мобильные ядра Cortex и графические ускорители Mali.
Вместе с переходом на ARMv9 компания ARM полностью отказалась от поддержки 32 бит, сосредоточившись исключительно на 64-битных решениях. Правда, полный переход намечен только на 2023 год. Новая архитектура поддерживает множество технологий. Например, Realms позволит приложениям защищать свой код от стороннего вмешательства и обрабатывать данные в специальной выделенной среде, к которой не будет доступа другому ПО. Ещё одним новшеством стала поддержка Scalable Vector Extensions (SVE) второго поколения, что позволяет обрабатывать данные 5G, поддержка машинного обучения, виртуальной и дополненной реальности локально на центральном процессоре, а не на удалённых серверах. Переход на новую архитектуру позволит повысить производительность процессоров следующего поколения на 30%. По заверениям ARM, на базе ARMv9 будет выпущено 300 миллиардов новых чипов.
ARM также представила первые Cortex-ядра на базе новой архитектуры ARMv9. Cortex-X2 — второе поколение высокопроизводительных ядер, демонстрирующее 16-процентный прирост производительности в сравнении с Cortex-X1 при той же тактовой частоте. Пиковая однопоточная производительность Cortex-X2 на 40% выше, чем у Intel i5-1135G7 с TDP 15 Вт. Кроме того, заявлена возможность использования до 8 таких ядер в одном процессоре. Такие решения ориентированы на высокопроизводительные ноутбуки и даже десктопные компьютеры.
Cortex-A710 — новое «большое» ядро, пришедшее на смену A78. Оно демонстрирует возросшую на 10% производительность при улучшенной на 30% энергоэффективности. Как и в случае с Cortex-X2, скорость выполнения задач, связанных с машинным обучением, выросла в два раза по сравнению с прошлым поколением. Это ядро также ориентировано на использование не только в смартфонах, но и в персональных компьютерах.
Наконец, третьим новым ядром стало Cortex-A510. В сравнении со старым A55 оно на 35% производительнее, на 20% энергоэффективнее и в три раза быстрее справляется с задачами машинного обучения. ARM утверждает, что Cortex-A510 сравнимо по мощности со старыми «большими» ядрами.
Вместе с ядрами для центральных процессоров ARM представила обновление семейства графических ускорителей Mali. Флагманский Mali-G710 на 20% производительнее и потребляет на 20% меньше энергии в сравнении с предшественником. Далее по списку идёт Mali-G610, который по сути тот же Mali-G710, но со слегка заниженными характеристиками. Середнячок Mali-G510 в два раза мощнее и на 22% более энергоэффективный по сравнению с предшественником. Замыкает линейку новых GPU модель Mali-G310, ориентированная на бюджетные модели. Этот чип демонстрирует самый впечатляющий прирост: в шесть раз более быстрая отрисовка текстур, в 4,5 раза увеличенная производительность Vulkan и вдвое более быстрый рендеринг пользовательского интерфейса Android.
Согласно результатам тестирования ARM, под нагрузкой чипсет с ядрами Cortex-A710 и графическим ускорителем Mali-G710 демонстрирует увеличение производительности CPU на 33%, GPU — на 20% и улучшение энергоэффективности на 15% по сравнению со связкой Cortex-A78 и Mali-G78.
Android про ARM64-v8a, armeabi-v7a, armeabi, so86 проблемы совместимости под x86
Сегодняшние тестеры протестировали интегрированную версию за исключением ошибки: о телефонах Huawei Mate 8AndroidКогда в системе 6.0 запущена только что протестированная версия, возникают ошибки флэшбэка, но в системе Android 6.0 мобильного телефона Xiaomi Mi 4 ошибок нет, и она работает хорошо. Позже я проверил код моего связанного модуля и обнаружил, что код моего интегрированного модуля, связанного с версией, и код модуля, связанного с версией филиала, в точности совпадают, то есть у меня нет проблем с объединением кода ветки в код соединительной линии, поэтому я должен проверить проблему кода соединительной линии ,
Изучив журнал отправки, я обнаружил, что коллега отправил запись файла so-файла, переданного УНИТА до слияния кода, и обнаружил, что он добавил папку arm64-v8a с ARM64-v8a, выдвинутым УНИТА. Итак, файл библиотеки. Другие тексты библиотеки не имеют соответствующей версии arm64-v8a.
Я обнаружил, что есть объяснение относительно arm64-v8a через Baidu:
arm64-v8a имеет обратную совместимость, но только если в вашем проекте нет папки arm64-v8a.Если у вас есть две папки armeabi и arm64-v8a, две папки, есть a.so b.so, arm64-v8a имеет только a.so, затем, когда arm64-v8a использует b, он находит папку arm64-v8a и обнаруживает, что b.so нет, сообщает об ошибке, поэтому удалите ее в это время Папка arm64-v8a. В настоящее время мобильный телефон обнаруживает, что адаптация к arm64-v8a отсутствует, он непосредственно найдет библиотеку arm armeabi, поэтому либо вы не добавляете arm64-v8a, либо библиотека arm, существующая в armeabi, также должна быть в arm64-v8a. имеют
Автор: зеленый джим
Ссылка :Установочный пакет WeChat только скомпилировал armeabi, без x86, как arm64-v8a работает на мобильных телефонах с различными процессорами? -Ответ зелёным джимом
Источник: Жиху
Авторские права принадлежат автору. Для коммерческих перепечаток, пожалуйста, свяжитесь с автором для авторизации. Для некоммерческих перепечаток, пожалуйста, укажите источник.
Установлено, что оригинальный телефон Huawei Mate 8 является 64-битнымОперационная системаТем не менее, мобильный телефон Xiaomi Mi 4 представляет собой 32-разрядную операционную систему, поэтому мобильный телефон Xiaomi Mi 4 запускает приложение без ошибок, в то время как мобильное приложение Huawei Mate 8 запускает флэш-ошибку.
Cortex-A50 series
В первой половине 2013 года ARM представила новую линейку чипов, которая получила название Cortex-A50 series. Ядра этой линейки будут выполнены по новой версии архитектуры, ARMv8, и поддерживать новые наборы команд, а также станут 64-битными. Переход на новую разрядность потребует оптимизации мобильных операционных систем и приложений, но, разумеется, сохранится поддержка десятков тысяч 32-битных приложений. Первой на 64-битную архитектуру перешла компания Apple. Последние устройства компании, например, iPhone 5S, работают на именно таком ARM-процессоре Apple A7. Примечательно, что он не использует ядра Cortex – они заменены на собственные ядра производителя под названием Swift. Одна из очевидных причин необходимости перехода к 64-битным процессорам - поддержка более 4 ГБ оперативной памяти, а, кроме того, возможность оперировать при вычислении намного большими числами. Конечно, пока это актуально, в первую очередь, для серверов и ПК, но мы не удивимся, если через несколько лет на рынке появятся смартфоны и планшеты с таким объёмом ОЗУ. На сегодняшний день о планах по выпуску чипов на новой архитектуре и смартфонов с их использованием ничего не известно, но, вероятно, именно такие процессоры и получат флагманы в 2014 году, о чём уже заявила компания Samsung.
Для каждой поддерживаемой архитектуры ЦП нет соответствующего файла .so
Это было упомянуто ранее, но вы должны действительно обратить на это особое внимание, потому что это может произойти, даже не осознавая этого.
Например: ваше приложение поддерживает архитектуры armeabi-v7a и x86, а затем использует Android Studio для добавления зависимости библиотеки функций. Эта библиотека функций содержит файлы .so и поддерживает больше архитектур ЦП. :
После запуска нашего приложения мы обнаружим, что оно будет зависать на некоторых устройствах, таких как Galaxy S6, и, в конце концов, вы обнаружите, что в телефоне установлены только файлы .so из 64-разрядного каталога.
Решение: Перекомпилируйте наш .so-файл для поддержки отсутствующих ABI или установите
Отображает указанные поддерживаемые ABI.
Последний пункт:Если вы являетесь поставщиком SDK, но предоставленная библиотека не поддерживает все ABI, то вы запутаете своих пользователей, потому что они могут поддерживать только меньше, чем вы предоставляете ABI.
Ядра Cortex
ARM разрабатывает несколько семейств ядер, которые используются для различных задач. К примеру, процессоры, основанные на Cortex-Mx и Cortex-Rx (где “х” - цифра или число, обозначающее точный номер ядра) используются во встраиваемых системах и даже бытовых устройствах, к примеру, роутерах или принтерах.
Подробно на них мы останавливаться не будем, ведь нас, в первую очередь, интересует семейство Cortex-Ax - чипы с такими ядрами используются в наиболее производительных устройствах, в том числе смартфонах, планшетах и игровых консолях. ARM постоянно работает над новыми ядрами из линейки Cortex-Ax, но на момент написания этой статьи в смартфонах используются следующие из них:
- Cortex-A5;
- Cortex-A7;
- Cortex-A8;
- Cortex-A9;
- Cortex-A12;
- Cortex-A15;
- Cortex-A53;
- Cortex-A57.
Чем больше цифра - тем выше производительность процессора и, соответственно, дороже класс устройств, в которых он используется. Впрочем, стоит отметить, что это правило соблюдается не всегда: к примеру, чипы на ядрах Cortex-A7 имеют большую производительность, нежели на Cortex-A8. Тем не менее, если процессоры на Cortex-A5 уже считаются чуть ли не устаревшими и почти не используются в современных устройствах, то CPU на Cortex-A15 можно найти во флагманских коммуникаторах и планшетах. Не так давно ARM официально объявила о разработке новых, более мощных и, одновременно, энергоэффективных ядер Cortex-A53 и Cortex-A57, которые будут объединены на одном чипе с применением технологии ARM big.LITTLE и поддерживать набор команд ARMv8 (“версию архитектуры”), но в настоящее время они не применяются в массовых потребительских устройствах. Большинство чипов с ядрами Cortex могут быть многоядерными, и в современных топовых смартфонах повсеместное распространение получили четырёхъядерные процессоры.
Крупные производители смартфонов и планшетов обычно используют процессоры известных чипмейкеров вроде Qualcomm или собственные решения, которые уже успели стать довольно популярными (к примеру, Samsung и её семейство чипсетов Exynos), но среди технических характеристик гаджетов большинства небольших компаний зачастую можно встретить описание вроде “процессор на Cortex-A7 с тактовой частотой 1 ГГц” или “двухъядерный Cortex-A7 с частотой 1 ГГц”, которое обычному пользователю ничего не скажет. Для того, чтобы разобраться, в чём заключаются отличия таких ядер между собой, остановимся на основных.
перед началом
Прежде чем начать, вам нужно знать 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»)
Будущее
По имеющейся на данный момент информации, в ближайшее время ARM совместно с другими компаниями планирует наладить выпуск big.LITTLE чипов следующего поколения, которые будут использовать новые ядра Cortex-A53 и Cortex-A57. Кроме того, бюджетные процессоры на ARM big.LITTLE собирается выпускать китайский производитель MediaTek, которые будут работать по схеме “2+2”, то есть, использовать две группы по два ядра.
1 ответ 1
x86 — это прежде всего процессоры Intel Atom, которые установлены в немалое число реальных устройств, а не эмуляторы. Эмулятор, как раз может эмулировать любую архитектуру, независимо от архитектуры процессора, на котором хостится — на то он и эмулятор. Вы можете в этом убедится сами, посмотрев на список образов для эмуляции:
Минимальным набором поддерживаемых архитектур является набор APP_ABI := x86 armeabi . Далее следует определиться, будет ли ваше приложение использовать дополнительные возможности архитектуры armeabi-v7a, например NEON — если это так, то данную архитектуру тоже следует включить в список (расширенный список инструкций arm-v7) — на самом деле, сейчас практически все ARM процессоры, как минимум v7
В последнее время устройства с процессорами на 64-ех битной архитектуре все чаще появляются в продаже, поэтому их тоже стоит учесть.
Точно проигнорировать можно mips/mips64
Узнать, какая архитектура у вашего устройства, можно по спецификации процессора, который оно использует. Например, Qualcomm Snapdragon 820 — ARM-V8A. Так же в маркете можно найти программы, которые покажут системную информацию.
Несколько архитектур ARM в одном процессоре быть не может, но каждая следующая включает предыдущую, то есть в ARM-V7 включен ARM, в ARM-V8 — ARM-V7. По факту, самая актуальная сейчас ARM-платформа — ARM-V7, на ней построено абсолютное большинство действующих процессоров, но ARM-V8 активно наступает.
Разница в ARM-архитектурах очевидна, каждая следующая — шаг в эволюции, добавляются новые возможности на уровне железного ядра.
Вы можете указать собрать библиотеку под все abi и это будет хорошим решением, если итоговый размер приложения вас устроит — каждая дополнительная платформа — новые файлы, которые имеют размер.
Поместите файл .so в неправильное место
Легко запутаться в том, где .so файлы должны быть размещены или сгенерированы. Вот резюме:
- Проект Android Studio находится в каталоге jniLibs / ABI (конечно, его также можно указать, установив свойство jniLibs.srcDir в файле build.gradle).
- Проект Eclipse находится в каталоге libs / ABI (это также каталог, в котором команда ndk-build по умолчанию создает файл .so)
- Архив AAR находится в каталоге jni / ABI (файл .so будет автоматически включен в APK, который ссылается на архив AAR)
- В конечном файле APK в каталоге lib / ABI
- После установки через PackageManager в системах, меньших Android 5.0, файл .so находится в каталоге nativeLibraryPath приложения, а в системах, больших или равных Android 5.0, файл .so находится в каталоге nativeLibraryRootDir / CPU_ARCH приложения.
Cortex-A12
big.LITTLE MP (гетерогенный мультипроцессинг)
Схема big.LITTLE MP является наиболее “продвинутой” - в ней каждое ядро является независимым и может включаться ядром ОС по необходимости. Это значит, что если используются четыре ядра Cortex-A7 и столько же ядер Cortex-A15, в чипсете, построенном на архитектуре ARM big.LITTLE MP, смогут работать одновременно все 8 ядер, даже несмотря на то, что они разных типов. Одним из первых процессоров такого типа стал восьмиядерный чип компании Mediatek - MT6592, который может работать на тактовой частоте 2 ГГц, а также записывать и воспроизводить видео в разрешении UltraHD.
Что может пойти не так в приложении
Есть важное правило, которое является простым, но не очень известным при работе с файлами .so.
Вы должны предоставить .so файлы, оптимизированные для каждого ABI, насколько это возможно, но поддерживаются либо все, либо ни один из них: вам не следует смешивать их. Вы должны предоставить соответствующий файл .so для каждого каталога ABI.
Когда приложение установлено на устройстве, будет установлен только файл .so, соответствующий архитектуре ЦП, поддерживаемой устройством. На устройствах x86, если файл .so существует в каталоге libs / x86, он будет установлен. Если он не существует, будет выбран файл .so в armeabi-v7a. Если он не существует, будет выбран файл .so в каталоге armeabi. Файлы (поскольку устройства x86 также поддерживают armeabi-v7a и armeabi).
Выводы
За один такт процессоры архитектуры ARMv8 способны обработать значительно больше данных. Это повышает как общую производительность процессора, так и производительность на ватт. Учитывая ограничения технологических норм (максимально допустимую тактовую частоту), переход на ARMv8 – это единственный возможный способ нарастить быстродействие мобильных процессоров, не выходя за разумные рамки энергопотребления и нагрева.
Естественно, пользу от архитектуры ARMv8 получат только те приложения для iOS и Android, которые способны задействовать все ресурсы новых процессоров. Оптимизация программ под новую архитектуру может быть как ручной, так и автоматической, на уровне компилятора.
Первое же Android-устройство с 64-битным ARM-процессором и 4 Гбайт ОЗУ – фаблет Samsung Galaxy Note 4 (чип Exynos 5433: по четыре ядра Cortex-A57 и A53) – представят уже 3 сентября. А вторым, возможно, станет планшетный компьютер HTC серии Google Nexus c процессором Tegra K1 Denver.
Недавно мы рассказывали вам о том, как узнать 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:»
armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips, mips64.
Ну, armeabi — вроде понятно. Эта вроде архитектура на всех (или почти на всех) реальных гаджетах.
x86 — вроде тоже понятно. Это прежде всего для Genymotion и прочих эмуляторов, где Android x86.
Будет ли идеальным решением просто построить либу под все ABI? А если нет возможности протестить везде, а только на x86 и armeabi?
И почему столько armов: armeabi, armeabi-v7a, arm64-v8a? Какой из них актуальнее? Как определить, какой поддерживается моим гаджетом? Могут ли быть несколько сразу?
Другие места могут пойти не так
Когда вы вводите .so-файл, он влияет не только на архитектуру процессора. Я вижу ряд распространенных ошибок от других разработчиков, большинство из которых "UnsatisfiedLinkError", "dlopen: fail" и другие типы сбоев или низкой производительности:
Смешивание .so файлов, скомпилированных с разными средами исполнения C ++
Файлы .so могут зависеть от времени выполнения C ++, статической компиляции или динамической загрузки. Смешивание разных версий среды выполнения C ++ может вызвать много странных сбоев, и их следует избегать. Как правило, когда имеется только один файл .so, статическая компиляция среды выполнения C ++ - это нормально, в противном случае, когда имеется несколько файлов .so, все файлы .so должны быть динамически связаны с одной и той же средой выполнения C ++.
Это означает, что когда вводится новый предварительно скомпилированный файл .so, и в проекте есть другие файлы .so, нам нужно сначала проверить, соответствует ли среда выполнения C ++, используемая вновь введенным файлом .so, существующему файлу .so. ,
Cortex-A53
Открывает серию ядро Cortex-A53, которое будет прямым “наследником” Cortex-A9. Процессоры на Cortex-A53 заметно превосходят чипы на Cortex-A9 в производительности, но, при этом, сохраняется низкое энергопотребление. Такие процессоры могут быть использованы как по одиночке, так и в конфигурации ARM big.LITTLE, будучи объединенными на одном чипсете с процессором на Cortex-A57
Cortex-A57
Процессоры на Cortex-A57, которые будут выполнены по 20-нанометровому техпроцессу, должны стать самыми мощными ARM-процессорами в ближайшем будущем. Новое ядро значительно превосходит своего предшественника, Cortex-A15 по различным параметрам производительности (сравнение вы можете видеть выше), и, по словам ARM, которая всерьёз нацелена на рынок ПК, станет выгодным решением для обычных компьютеров (включая лэптопы), а не только мобильных устройств.
Для 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-разрядной архитектуры.
NVIDIA Tegra K1 (Project Denver)
Компания NVIDIA решила перевести на 64-битную процессорную архитектуру свой уже существующий чип Tegra K1. Графическая составляющая у него и раньше была едва ли не лучшей среди конкурентов – GK20A с 192 ядрами Kepler, производительностью 365 GFLOPS и поддержкой ПК-стандартов графики DirectX 11.2 и OpenGL 4.4 (а не их мобильных аналогов).
Читайте также: