Articles · Guides

What a split APK is, and why your app is in pieces

An app contains code for several CPU types, images at several screen densities and text in dozens of languages. Your phone needs one of each. Split packages exist so the store can send only the pieces your device uses, which is why the Play install of a large app is smaller than its universal APK.

What the pieces are

FileContainsHow many you need
base.apkThe app's code and shared resourcesOne, always
split_config.arm64_v8a.apkNative code for your CPUOne
split_config.xxhdpi.apkImages at your screen densityOne
split_config.en.apkOne language's textOne or more
Dynamic feature splitsOptional parts loaded on demandAs needed

APKS, XAPK and APKM

Distributing several files is awkward, so they get bundled. The extension tells you who made the bundle rather than anything about the contents.

ExtensionWhat it is
.apksThe standard bundle produced by Google's own tooling
.xapkA ZIP containing the APKs plus any OBB data
.apkmA bundle format from one particular distributor
.apkA single package, either an old-style app or a universal build

All of them need an installer that can open the bundle and hand every piece to Android in one session. Android's own installer accepts only a single APK.

Installing one

  1. Use a bundle installer It reads the bundle, picks the splits your device reports and installs them together.
  2. Or use a computer The install-multiple command does exactly the same thing over USB.
  3. Do not extract and install the base It is the most common mistake and produces an app that crashes at launch.
  4. Leave room The bundle, the unpacked pieces and the installed app coexist briefly. Budget three times the file size.

The universal alternative

Take the bundle
  • You want the smallest install
  • Storage is limited
  • The download is large
  • You have an installer already
Take a universal APK
  • You are archiving for several devices
  • You do not know the target phone
  • You want a single file with no installer
  • The app is small enough that it does not matter

A universal APK contains every architecture and density and is roughly twice the size. It always installs, which is exactly why archives keep them.

Base plus your architecture plus your density. Use a bundle installer, and never install the base on its own.

Frequently asked questions

Why does the Play Store install less than the APK size?

Because it sends only the splits your device needs. The universal APK contains all of them.

Can I convert a bundle to a single APK?

Tools exist that merge splits into a universal APK. The result must be re-signed, so it will not install as an update over the original.

Do split apps update differently?

The store updates the pieces that changed. Outside it, you install the whole bundle again.

Read next

Wrong street, wrong city, or a blue dot that jumps

A dot in the wrong city is not a broken receiver. It is a WiFi network that moved house.

The printer is on the network and the phone cannot see it

There is no print button. There is a print service, and an entry in the share menu.

Six hours to fill and no socket

Aeroplane mode and a turn-based game will outlast any setting inside the game itself.

Read next

Wrong street, wrong city, or a blue dot that jumps

A dot in the wrong city is not a broken receiver. It is a WiFi network that moved house.

The printer is on the network and the phone cannot see it

There is no print button. There is a print service, and an entry in the share menu.

Work through it in the order that finds the cause

It is the cable far more often than it is the battery, and it costs nothing to rule out.