Короткий ответ: 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 и иногда общий файл сразу со всеми библиотеками. Общий файл больше по размеру, зато подходит любому устройству.
Как узнать архитектуру устройства
- По модели. Найдите характеристики своей модели и посмотрите процессор: Snapdragon, Dimensity, Exynos, Tensor и Kirin последних лет — 64-битные ARM.
- Через приложение с информацией об устройстве. Программы вроде CPU-Z или Device Info показывают строку «Instruction set» или «ABI» — там будет, например, arm64-v8a.
- Через adb. Команда
adb shell getprop ro.product.cpu.abilistвыводит все архитектуры, которые поддерживает устройство, в порядке предпочтения. - Сравните со списком у файла. Подходит вариант, в котором есть хотя бы одна архитектура из списка устройства.
Типичные ошибки
- Установили armeabi-v7a на новый телефон. Обычно это работает, но часть свежих процессоров уже не выполняет 32-битный код. Если приложение не ставится или вылетает, возьмите вариант arm64-v8a.
- Установили arm64-v8a на старое устройство. 32-битный процессор не выполнит 64-битный код — Android сообщит, что приложение не установлено. Нужен вариант armeabi-v7a.
- Ставите ARM-файл в эмулятор на ПК. Эмуляторы обычно работают на x86_64 и переводят ARM-код с потерей скорости, а некоторые игры в них не запускаются. Если есть вариант x86_64, используйте его.
Как это выглядит на AndroidSoft
В списке файлов на странице приложения у каждого варианта рядом с размером и требованием Android указана архитектура — в том виде, в каком её называет источник. Рядом стоит ссылка на эту инструкцию. Если источник архитектуру не указывает, поле не показывается: мы не додумываем данные.
Когда вариантов несколько, они перечислены отдельными карточками, и у каждой своя кнопка скачивания, которая запрашивает именно выбранный вариант. Проверенная копия выдаётся из отдельного файлового хранилища, а если её пока нет, сайт показывает статус подготовки или недоступности.
Вопросы и ответы
Что лучше: отдельный файл под мой процессор или универсальный?
Работать будут оба. Отдельный файл меньше и быстрее скачивается; универсальный удобен, если вы ставите приложение на несколько разных устройств.
Влияет ли архитектура на скорость приложения?
Да: 64-битная сборка на 64-битном процессоре обычно работает быстрее и может использовать больше памяти, чем 32-битная.
Можно ли поменять архитектуру телефона?
Нет, она определяется процессором. Выбирать нужно файл под устройство, а не наоборот.