Инструкция AndroidSoft

arm64-v8a, armeabi-v7a, x86: какой файл выбрать

Что означают архитектуры процессора в описании APK, как узнать архитектуру своего устройства и какой вариант файла скачать.

Короткий ответ: arm64-v8a, armeabi-v7a, x86 и x86_64 — это архитектуры процессора, под которые собран код приложения. Почти все современные телефоны работают на arm64-v8a; если сомневаетесь, выбирайте этот вариант или универсальный файл, в котором перечислено несколько архитектур.

Коротко

  • arm64-v8a — 64-битные процессоры ARM: большинство телефонов и планшетов, выпущенных после 2017 года.
  • armeabi-v7a — 32-битные ARM: старые и бюджетные устройства, часть ТВ-приставок.
  • x86 и x86_64 — процессоры Intel и AMD: эмуляторы на компьютере, Chromebook, редкие планшеты.
  • Файл без указания архитектуры или с несколькими архитектурами подходит всем перечисленным устройствам.

Зачем приложению архитектура

Большая часть кода Android-приложений выполняется одинаково на любом процессоре. Но игры, браузеры, видеоплееры и мессенджеры со звонками содержат нативные библиотеки — машинный код, скомпилированный под конкретный набор инструкций. Если в файле нет библиотек под ваш процессор, Android откажется его устанавливать или приложение закроется при запуске.

Поэтому источники публикуют несколько вариантов одного выпуска: отдельно под arm64-v8a, отдельно под armeabi-v7a и иногда общий файл сразу со всеми библиотеками. Общий файл больше по размеру, зато подходит любому устройству.

Как узнать архитектуру устройства

  1. По модели. Найдите характеристики своей модели и посмотрите процессор: Snapdragon, Dimensity, Exynos, Tensor и Kirin последних лет — 64-битные ARM.
  2. Через приложение с информацией об устройстве. Программы вроде CPU-Z или Device Info показывают строку «Instruction set» или «ABI» — там будет, например, arm64-v8a.
  3. Через adb. Команда adb shell getprop ro.product.cpu.abilist выводит все архитектуры, которые поддерживает устройство, в порядке предпочтения.
  4. Сравните со списком у файла. Подходит вариант, в котором есть хотя бы одна архитектура из списка устройства.

Типичные ошибки

  • Установили armeabi-v7a на новый телефон. Обычно это работает, но часть свежих процессоров уже не выполняет 32-битный код. Если приложение не ставится или вылетает, возьмите вариант arm64-v8a.
  • Установили arm64-v8a на старое устройство. 32-битный процессор не выполнит 64-битный код — Android сообщит, что приложение не установлено. Нужен вариант armeabi-v7a.
  • Ставите ARM-файл в эмулятор на ПК. Эмуляторы обычно работают на x86_64 и переводят ARM-код с потерей скорости, а некоторые игры в них не запускаются. Если есть вариант x86_64, используйте его.

Как это выглядит на AndroidSoft

В списке файлов на странице приложения у каждого варианта рядом с размером и требованием Android указана архитектура — в том виде, в каком её называет источник. Рядом стоит ссылка на эту инструкцию. Если источник архитектуру не указывает, поле не показывается: мы не додумываем данные.

Когда вариантов несколько, они перечислены отдельными карточками, и у каждой своя кнопка скачивания, которая запрашивает именно выбранный вариант. Проверенная копия выдаётся из отдельного файлового хранилища, а если её пока нет, сайт показывает статус подготовки или недоступности.

Вопросы и ответы

Что лучше: отдельный файл под мой процессор или универсальный?

Работать будут оба. Отдельный файл меньше и быстрее скачивается; универсальный удобен, если вы ставите приложение на несколько разных устройств.

Влияет ли архитектура на скорость приложения?

Да: 64-битная сборка на 64-битном процессоре обычно работает быстрее и может использовать больше памяти, чем 32-битная.

Можно ли поменять архитектуру телефона?

Нет, она определяется процессором. Выбирать нужно файл под устройство, а не наоборот.