XAPK vs APKM vs APK vs APKS — the complete format guide
Which Android package format is which, what's inside, where they come from, and which tool you need to install them.
Updated
Google Play delivers apps as split APK bundles behind the scenes, but when you download an Android app from a third-party source you'll see filenames ending in .apk, .xapk, .apkm or .apks. They all install into the same end result — an app on your phone — but they are structurally different, come from different vendors, and a stock Android installer can only open one of them. This guide lines them up side by side so you never have to guess which file you have.
At-a-glance comparison
| Format | What's inside | Who produces it | Typical size | Stock installer opens? |
|---|---|---|---|---|
| APK | Single installable Android package | Any Android build toolchain | 10–100 MB | Yes |
| XAPK | APK + OBB data + optional splits, zipped | APKPure | 40 MB – 2 GB | No — needs X-Installer |
| APKM | Base APK + architecture/locale/density splits | APKMirror | 20–500 MB | No — needs X-Installer |
| APKS | Split APKs bundled from an AAB / by SAI | SAI, bundletool, Android App Bundle exports | 20–500 MB | No — needs X-Installer |
| ZIP | Any of the above wrapped in a ZIP archive | Various sideload sites | Varies | No — needs X-Installer |
APK — the baseline
A plain APK (.apk) is a signed, installable Android package. It contains compiled code (DEX), resources, the AndroidManifest, and a signing block. Android's PackageInstaller can open any APK directly — that's the "Install unknown apps" flow you already know.
APK works for small or single-architecture apps. It becomes a bad fit once an app needs per-CPU binaries or language-specific resources — at that point a single APK has to ship every variant to every device, ballooning file size. That's why the split-APK formats below exist.
XAPK — APKPure's game-friendly bundle
XAPK (.xapk) is APKPure's archive format. Under the hood it is a ZIP that contains a base APK, usually a set of Split APKs, and almost always the app's OBB data files. OBB is where heavy games store textures, audio and levels — a single game can pack 1 GB of OBB behind a 30 MB APK.
Because the stock installer doesn't copy OBB to /Android/obb/, installing a game from an XAPK manually means extracting the archive, copying files to the right path, and only then tapping the APK. A helper like X-Installer does that in one tap.
APKM — APKMirror's split bundle
APKM (.apkm) is APKMirror's equivalent of an AAB split bundle. Internally it is a ZIP of one base APK plus configuration splits (per CPU ABI, per screen density, per language). APKMirror publishes APKM so the same download works on any device — the installer picks the right splits at install time.
An APKM typically has no OBB (APKMirror hosts games only when they fit the split model), so installing one is faster than an XAPK of the same app. You still need an installer that speaks the format; stock Android cannot open a multi-APK ZIP.
APKS — the SAI / bundletool format
APKS (.apks) is the output format of SAI (Split APKs Installer) and the bundletool CLI that Google provides for inspecting Android App Bundles. Structurally it is the same idea as APKM: base APK + configuration splits in a ZIP, just with a different extension and metadata.
You'll see APKS when developers export an .aab as a sideloadable archive, or when someone re-packages a Play-delivered app with SAI. Any tool that accepts APKM usually accepts APKS — including X-Installer.
Which one do I have?
Does the filename end in .apk only?
Plain APK. Tap it and Android's system installer takes over.
Does it end in .xapk, and is it a game?
XAPK with OBB. Open with X-Installer; manual extraction is error-prone.
Does it end in .apkm?
APKMirror split bundle. Use X-Installer — APKMirror's own installer works too but is Android-only and ad-supported.
Does it end in .apks?
SAI / bundletool output. Use X-Installer or SAI. Both work.
Does it end in .zip and contain APKs inside?
Generic container. X-Installer inspects the archive, detects the format inside, and installs.
Android version support
All four formats install cleanly on any Android version X-Installer itself supports — Android 7.0 (API 24) or higher.