При попытке установить приложение вручную через APK-файл пользователь часто видит несколько версий сборки с пометками arm64-v8a, armeabi-v7a или x86_64 — и ошибка «приложение не совместимо с вашим устройством» почти всегда означает, что выбран не тот вариант. Эти пометки — и есть CPU ABI, то есть указание на архитектуру процессора, под которую скомпилирована программа.
Разобраться в вопросе несложно: достаточно понять, что такое ABI, какие варианты существуют и как узнать архитектуру своего устройства. Эта информация пригодится при установке приложений из альтернативных источников, прошивке устройств и диагностике проблем совместимости.
Что такое CPU ABI простыми словами
ABI (Application Binary Interface) — это двоичный интерфейс приложения, набор правил, описывающих, как скомпилированная программа взаимодействует с процессором и операционной системой на самом низком уровне. Если проводить аналогию, то ABI — это «язык», на котором приложение разговаривает с процессором. Программа, собранная под одну архитектуру, физически не может выполняться на другой без специальных прослоек-эмуляторов.
В спецификацию ABI входит несколько важных элементов:
- 📋 набор машинных инструкций процессора (ARM, x86 и другие);
- 🔢 разрядность — 32 бита или 64 бита;
- 📦 формат исполняемых файлов и библиотек;
- 🔗 соглашения о вызовах — как функции передают параметры и возвращают результаты;
- 🧩 порядок байтов в памяти (endianness).
Не путайте ABI с API. API — это программный интерфейс на уровне исходного кода, с ним работает разработчик при написании программы. ABI же действует на уровне уже скомпилированного бинарного кода и определяет, запустится ли готовое приложение на конкретном устройстве вообще.
Основные типы ABI в Android-устройствах
В экосистеме Android исторически сложилось несколько распространённых архитектур. Знать их нужно прежде всего для правильного выбора APK-файла при ручной установке.
| Название ABI | Архитектура | Разрядность | Где встречается |
|---|---|---|---|
| arm64-v8a | ARM | 64 бита | Подавляющее большинство современных смартфонов и планшетов |
| armeabi-v7a | ARM | 32 бита | Старые и бюджетные устройства |
| x86_64 | Intel/AMD | 64 бита | Эмуляторы, некоторые планшеты и ТВ-приставки |
| x86 | Intel | 32 бита | Устаревшие устройства на процессорах Intel |
| armeabi | ARM | 32 бита | Очень старые устройства, давно не поддерживается |
Сегодня основным стандартом стал arm64-v8a — именно под него собирается большинство приложений. Поддержка 32-битных сборок постепенно сворачивается: если у вас современный смартфон, с высокой вероятностью нужен именно вариант arm64-v8a.
💡Если сомневаетесь между несколькими версиями APK — современному смартфону почти всегда подходит сборка arm64-v8a.