Split APKs and Android App Bundles, explained for users

2 min read · Updated 2026-09-05

Advertisement

From one APK to several

An app used to be one APK containing code and resources for every screen size, language and CPU. Since August 2021 Google Play requires new apps to be uploaded as an Android App Bundle (.aab). Play keeps the bundle and, for each download, generates a set of APKs that together make up the app on that specific device.

The parts

  • base.apk: the code and the resources common to every device. Installable on its own only if the app was built that way; most modern apps are not.
  • Configuration splits: split_config.arm64_v8a.apk (native code for the CPU), split_config.xxhdpi.apk (images for the screen density), split_config.en.apk, split_config.de.apk (language strings). A device gets one of each kind.
  • Feature splits: optional modules the app downloads on demand, such as an editor or a camera feature.

All splits of one app share the package name, version code and signature. Android installs them in a single session and treats them as one app.

Why installing only base.apk fails

The app starts, looks for a resource or a native library that lives in a split, and crashes with Resources$NotFoundException or UnsatisfiedLinkError, or the installer refuses with INSTALL_FAILED_MISSING_SPLIT. This is the reason an XAPK must be installed as a whole; see installing split APKs with SAI.

How mirrors handle bundles

Since Play generates device-specific sets, a mirror either stores a universal APK (the developer's single-file build that contains every configuration, larger but installs anywhere) or an XAPK containing base plus the splits for the most common configuration (arm64, xxhdpi, several languages). The version pages here label each file with its format, so you can pick the universal APK for an unusual device and the XAPK for a current phone.

Checking what a device has

App Manager or SAI list the splits of an installed app under its details. adb shell pm path <package> prints every APK file of the app, one line each. An app with a single line was installed as a universal or single-file package.

This guide describes general Android behaviour; menu names vary by manufacturer and Android version. Downloads on this site come from established third-party mirrors and are never modified by us.

More guides

Advertisement