Поддержка 64 бит android

Перевод «Подготовьте ваши приложения к 64-бит требованиям»

Перевод статьи Get your apps ready for the 64-bit requirement (от 15.01.2019) блога «Android Developers Blog».

Современные 64-бит процессоры увеличивают скорость и обогащают опыт ваших пользователей. Добавление 64-бит версии приложения даёт улучшение производительности, открывает пути для будущих инноваций и настраивает на устройства только с 64-бит «железом»

Мы хотим помочь вам быть готовыми, и знаем что вам нужно планировать время. Мы поддерживаем 64-бит CPU начиная с Android 5.0 Lolipop, и в 2017 году мы впервые анонсировали, что приложения использующие нативный код, должны иметь 64-бит версию (в дополнение к 32-бит версии). Сегодня мы представляем более детальную информацию и временной график, чтобы сделать этот переход как можно более лёгким в 2019 году

64-бит требования: что это означает для разработчиков

Начиная с 1 августа 2019

  • все новые приложения и обновления приложений, которые содержат нативный код, должны иметь 64-бит версию в дополнение к 32-бит версиям при публикации в Google Play
  • Дополнение: Google Play до августа 2021 продолжит принимать 32-бит версии только в части обновления существующих игр использующих Unity версии 5.6 или младше

Начиная с августа 2021

  • Google Play остановит обслуживание приложений без 64-бит версий на 64-бит совместимых устройствах, т.е. они перестанут отображаться в Play Store на этих устройствах
  • это будет касаться в том числе игр использующих Unity версии 5.6 или младше

Эти требования не применяются для:

  • приложений предназначенных исключительно для Wear OS или Android TV, т.к. они имеют форм-фактор не поддеживающий в настоящее время 64-бит код
  • приложений не предназначенных для распространения на устройствах работающих на Android 9 Pie или выше

Мы не меняем наши условия поддержки 32-бит. Play будет продолжать доставлять приложения на 32-бит устройства. Это требование лишь означает что приложения с 32-бит нативным кодом должны будут дополнительно иметь 64-бит версию

Подготовка к 64-бит требованиям

Мы ожидаем что для большинства разработчиков, переход на 64-бит будет простым. Многие приложения написаны полностью на не-нативном коде (например на Java или Kotlin) и не потребуют изменения кода.

ВСЕМ РАЗРАБОТЧИКАМ: вот обзор шагов который вам необходимо проделать для 64-бит совместимости. Для большей информации обратитесь к нашей подробной документации

  • проверьте ваше приложение на наличие нативного кода. Вы можете проверить наличие .so файлов с помощью APK Analyzer. Определите состоят ли они из вашего собственного кода или импортированного из SDK или используемой вами библиотеки. Если у вас нет каких-либо .so файлов в вашем APK, то вы 64-бит совместимы
  • включите 64-бит архитектуры и пересоберите нативный код (.so файлы) импортированный из вашего собственного кода. Для большей информации см. документацию
  • обновите все SDK и библиотеки до 64-бит совместимых версий, если необходимо. Обратитесь к владельцу SDK или библиотеки если такие версии недоступны. Мы работаем с владельцами ведущих библиотек над их 64-бит совместимостью
  • проверьте на наличие локальных проблем после пересборки вашего приложения
  • разверните ваши тесты используя tasting track для тщательного тестирования

РАЗРАБОТЧИКАМ ИГР: все три наиболее используемых движка в настоящее время поддерживают 64-бит (Unreal и Cocos2d с 2015 года, Unity с 2018). Мы понимаем что миграция стороннего игрового движка это затратный процесс требующий много времени

  • т.к. Unity только недавно начала предоставлять 64-бит поддержку в версиях 2017.4 и 2018.2, мы делаем исключение существующим играм использующим версию 5.6 или более раннюю до августа 2021 года. Unity подготовила руководство которое может помочь вам в обновлении для 64-бит совместимости

ВЛАДЕЛЬЦАМ SDK И БИБЛИОТЕК: обновитесь для 64-бит совместимости по возможности скорее чтобы дать разработчикам приложений время на адаптацию, и дайте знать об этом разработчикам. Зарегистрируйте ваш SDK для получения обновлений последних инструментов и информации которая может помочь обслуживать ваших пользователей

Источник

Что значит отказ от поддержки 32-битной архитектуры в будущих процессорах ARM

Константин Иванов

Во время выступления на конференции Arm DevSummit Пол Вильямсон, вице-президент и глава клиентского подразделения ARM, заявил, что новые процессоры Arm Cortex-A, то есть те самые, что служат основой платформы для чипсета вашего смартфона, к 2022 году будут поддерживать только 64-битную архитектуру. Это означает, что на аппаратном уровне поддержки 32-битных приложений в будущем не будет, а следовательно, это небольшой, но весьма значимый шаг для будущего смартфонов и ОС Android.

Если вы волновались насчет поддержки приложений, то напрасно. Компания Google с августа 2019 года требует, чтобы все приложения в магазине Google Play были 64-битными. Со стороны ARM также подчеркивают, что около 60% приложений уже совместимы с 64-битной архитектурой. Большая часть тех, что 64-бита не поддерживают, находятся за пределами западных экосистем, созданных Apple и Google. Так что большинство приложений или уже 64-битные, или у их создателей есть еще масса времени для обеспечения такой поддержки. Худший вариант – это старые приложения, у которых уже нет поддержки. Они просто перестанут работать.

Читайте также:  Система занимает много места андроид почему

А разве Android еще не 64-битный?

Технически ОС Android уже 64-битная. Поддержка 64-битных приложений была внедрена еще в 2014 году с обновлением до версии 5.0 Lollipop, но ОС Android и ядра ARM сохраняют поддержку 32-битных приложений. Так что называть ОС Android полностью 64-битной системой будет неверно. Это наследство в виде поддержки старой архитектуры просуществует до 2022 года с точки зрения аппаратной части, так что нет предпосылок к тому, чтобы из Android его исключили заранее. Так что для пользователей переход должен быть бесшовным.

Польза от перехода полностью на 64-битную архитектуру должна включать улучшение производительности для приложений, игр и операционной системы. В некоторых случаях оно может достигать 20%. Разработчикам больше не потребуется заботиться о поддержке двух архитектур, и они смогут сосредоточиться исключительно на 64-битной. Возможно, это даст некоторое ускорение в выпуске обновлений.

В большинстве случаев переход к 64-битной архитектуре будет заурядным событием. Смартфоны и приложения находятся в переходном периоде уже несколько лет. Так что и с точки зрения аппаратной и программной части переход давно пора завершить. В конце концов, в Apple еще в 2017 году уже сделали iOS 11 полностью 64-битной.

Что известно о 64-битных процессорах ARM

Важной новостью от Arm является то, что они наконец-то смогут избавиться от лишней части своих процессоров, которая требуется исключительно для поддержки 32-битной архитектуры. Это сэкономит полезную площадь при печати, что означает меньший физический размер ядра и его меньшую теплоотдачу, ну или большую производительность при тех же размерах.

Кодовые названия ядер Arm для 2021 и 2022 года – Matterhorn и Makalu. И вот у второго уже не будет поддержки 32 бит. Компания Arm обещает 30% прирост в производительности между ядрами 2020 года Cortex-A78 и Makalu, так что не заметить улучшение будет сложно. Переход к полностью 64-битной архитектуре начнется с больших ядер Cortex-A. При этом сам переход не будет непременно сопровождаться новой архитектурой самого ядра, такой как ArmV9. Другими словами, скорее всего, мы увидим дизайн кластера ядер, в котором будут присутствовать как полностью 64-битные Makalu, так и меньшие ядра с поддержкой 32/64-бит, такие как Cortex-A55. Хотя финальный продукт с точки зрения пользователя и разработчика будет исключительно 64-битным.

Так что до того, как появятся чипсеты, работающие исключительно с 64-битами, нам придется подождать, чтобы появились малые ядра в полностью 64-битном исполнении. Это оставляет пространство для менее производительных устройств, которые используют только меньшие ядра. Они смогут обеспечивать поддержку 32-битной архитектуры несколько дольше. И есть даже предпосылки к тому, что обновление данного типа ядер произойдет до этого момента. Это будет более новая модель в сравнении с Cortex-A55, но у нее все еще будет поддержка и 32, и 64-бит, так что тут переход будет еще более плавным.

Переход полностью на 64-бита – это важный шаг для ОС Android и компании Arm. Его значение – в упрощении в сравнении с современным состоянием, когда требуется поддержка наследия 32-битной эры. Однако не нужно воспринимать его как фундаментальное изменение экосистемы или радикальное обновление пользовательского опыта, поскольку вся сложность перехода ложится исключительно на плечи разработчиков. А простые пользователи устройств, скорее всего, вообще ничего не заметят.

Источник

Android с 64-битным ядром от Intel в вопросах и ответах

Слухи о том, что компания Intel готовит 64-битную версию Android, оптимизированную под ее процессоры, ходили уже довольно давно, да и сама корпорация на последних этапах не делала из этого секрета: так, совершенно прямое тому подтверждение прозвучало на недавнем форуме IDF, проходившем в китайском Шенжене. Однако информации было слишком мало, чтобы выносить ее на Хабра обсуждение – другими словами, обсуждать было еще нечего. Теперь это уже не так: у нас есть и информация о проделанной работе, и, самое главное, прямые ссылки для скачивания нового продукта. Имеющуюся информацию мы решили оформить в виде вопросов и ответов.

Что представляет из себя продукт, представленный Intel?
Специалистами Intel была разработана версия операционной системы Android 4.4.2 KitKat, оптимизированная под 64-битные процессоры Intel. На самом деле, отдельные сборки Android для конкретных мобильных устройств на базе Intel (таких как, например, трансформер Samsung ATIV) делались и раньше, начиная с Ivy Bridge. Однако принципиальное отличие от них продукта, о котором мы сейчас говорим – он подходит для любого процессора в рамках одного поколения. Иначе говоря, вместо кастомных сборок представлены generic дистрибутивы.

Какая часть представленного продукта является 64-битной?
64-битным является ядро, используемое операционной системой Android. До тех пор, пока Google не выпустит полностью 64-битную ОС, 32-битный Android будет работать на 64-битном ядре.

Для каких поколений процессоров собраны дистрибутивы Android?
В настоящее время доступны UEFI дистрибутивы Android для следующих процессоров:

  • Bay Trail
  • Haswell
  • Ivy Bridge

Кроме того, отдельного дистрибутива удостоился компьютер MinnowBoard MAX (напомним, там тоже установлен процессор Bay Trail). Все дистрибутивы доступны для скачивания с сайта 01.org. Оттуда же можно скачать уже упоминавшиеся кастомные сборки.

Какие оптимизации включены в дистрибутивы Intel?
Оптимизации подверглись реализации таких технологий, как HTML5, Javascript и Java (виртуальная машина Dalvik). Что касается нативных библиотек, были оптимизированы браузер Webkit, движок V8, Bionic C, графические библиотеки и многое другое. Кроме того, много труда было потрачено на оптимизацию ядра и драйверов для улучшения их производительности и эффективности. Теперь создавать нативные Android приложения станет еще проще и интереснее.

Читайте также:  Dualshock 4 epsxe android

Включена ли в дистрибутивы Intel лицензия GMS?
Компания Intel позиционирует свои 64-битные дистрибутивы как базисную референсную платформу, поэтому лицензия GMS (и, соответственно, Google Play и т.д.) в них отсутствует. Однако ничто не мешает получить ее тем, кто будет их использовать.

Планируется ли выпуск 32-битной версии дистрибутивов?
Нет, будут выпускаться только 64-битные оптимизации. В свое время был выпущена версия Jelly Bean под х86, можно попробовать ее найти в интернете.

Будут ли опубликованы оптимизированные Intel фрагменты кода?
Произведенная Intel оптимизация кода настолько тесно связана с особенностями архитектуры ее процессоров, что свободный доступ к исходникам без оформления NDA, к сожалению, невозможен.

Еще раз обращаем ваше внимание, что для поддержки развития ОС Android под платформу Intel x86 создан специальный раздел на сайте 01.org. Там вы найдете всевозможные ценные советы, рекомендации, примеры и дистрибутивы.

Источник

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

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, снизить вес процессора) и т. Д. Таким образом, приобретая сильные стороны и избегая недостатков и, наконец, попадающих в руки потребителей, они работают с запущенным программным обеспечением, оно действительно улучшилось, пользователи довольны, карманы производителя также выпирают.

Читайте также:  Android setting app apk

Таким образом, битовый процессор 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 для каждого пакета.

Источник

Оцените статью