XAPK vs APKM vs APK vs APKS — полный обзор форматов

Какой формат Android-пакета к чему, что внутри, откуда берётся и какой инструмент нужен для установки.

Обновлено

Google Play внутри раздаёт приложения как split-APK бандлы, но при загрузке Android-приложения со стороннего источника вы видите файлы с расширениями .apk, .xapk, .apkm или .apks. На выходе все они ставят приложение на телефон, но структурно это разные форматы от разных поставщиков, и штатный установщик Android открывает только один из них. Это руководство кладёт их бок о бок, чтобы никогда не гадать.

Сравнение в одной таблице

ФорматЧто внутриКто производитТипичный размерОткрывает штатный установщик?
APKОдин устанавливаемый Android-пакетЛюбая сборочная система Android10–100 МБДа
XAPKAPK + данные OBB + опциональные split, в ZIPAPKPure40 МБ – 2 ГБНет — нужен X-Installer
APKMБазовый APK + split под архитектуру/локаль/плотностьAPKMirror20–500 МБНет — нужен X-Installer
APKSSplit APK из AAB или собранные SAISAI, bundletool, Android App Bundle20–500 МБНет — нужен X-Installer
ZIPЛюбой из вышеперечисленных внутри ZIP-архиваРазные источники sideloadРазныйНет — нужен X-Installer

APK — базовый формат

Обычный APK (.apk) — подписанный устанавливаемый Android-пакет. Содержит скомпилированный код (DEX), ресурсы, AndroidManifest и блок подписи. PackageInstaller Android открывает любой APK напрямую — это привычный поток «Установка из неизвестных источников».

APK подходит для маленьких или однопроцессорных приложений. Плох, когда нужны бинарники под разные CPU или языковые ресурсы: один APK вынужден везти все варианты на каждое устройство, раздувая размер. Поэтому существуют split-форматы ниже.

XAPK — «игровой» бандл APKPure

XAPK (.xapk) — архивный формат APKPure. Внутри это ZIP с базовым APK, обычно набором split APK и почти всегда данными OBB. OBB — это место, где тяжёлые игры хранят текстуры, звук и уровни: за 30 МБ APK может стоять 1 ГБ OBB.

Поскольку штатный установщик не копирует OBB в /Android/obb/, ручная установка игры из XAPK означает распаковку архива, копирование файлов по нужным путям и только потом запуск APK. X-Installer делает всё это за одно нажатие.

APKM — split-бандл APKMirror

APKM (.apkm) — аналог AAB-бандла от APKMirror. Внутри — ZIP с одним базовым APK плюс конфигурационными split (под CPU ABI, плотность экрана, язык). APKMirror публикует APKM, чтобы одна загрузка подходила любому устройству — установщик выбирает нужные части на лету.

В APKM обычно нет OBB (APKMirror хостит игры, только если они вписываются в split-модель), поэтому установка идёт быстрее, чем у XAPK того же приложения. Штатный Android всё равно не откроет ZIP с несколькими APK — нужен установщик, умеющий этот формат.

APKS — формат SAI / bundletool

APKS (.apks) — выход SAI (Split APKs Installer) и CLI bundletool от Google, предназначенного для работы с Android App Bundle. Структурно это та же идея, что APKM: базовый APK + split в ZIP, просто другое расширение и метаданные.

APKS встречается, когда разработчики экспортируют .aab в sideload-архив или кто-то перепаковывает Play-приложение с помощью SAI. Любой инструмент, читающий APKM, обычно читает и APKS — включая X-Installer.

Какой у меня формат?

  • Расширение только .apk?

    Обычный APK. Нажмите — и системный установщик Android сделает остальное.

  • .xapk и это игра?

    XAPK с OBB. Открывайте X-Installer — ручная распаковка ошибочно-прона.

  • .apkm?

    Split-бандл APKMirror. Используйте X-Installer (собственный установщик APKMirror тоже работает, но только под Android и с рекламой).

  • .apks?

    Вывод SAI / bundletool. Подойдёт X-Installer или SAI — оба работают.

  • .zip с APK внутри?

    Общий контейнер. X-Installer смотрит содержимое, определяет формат и ставит.

Поддержка версий Android

Все четыре формата устанавливаются на любой Android-версии, поддерживаемой самим X-Installer — Android 7.0 (API 24) и выше.

Дальше