RIP APK. Long Live the Android App Bundle

Do you publish to the Android App Bundle format? If not, you should start thinking about it now. Why? Because by August 2021 you won’t have any choice!

Just a few days ago, Google made a modest announcement that will have significant consequences for many Android developers.

It said: From August 2021, the Google Play Console will require all new apps to:

  • Publish with the Android App Bundle format.
  • Utilize Play Asset Delivery or Play Feature Delivery to deliver assets or features that exceed download size of 150MB. 
  • Target API level 30 (Android 11) or above and adjust for behavioral changes.

In other words, the old .apk format is dead.

What does this all mean? Let’s go back to basics.

When a developer makes an app for Android, it creates a file called an Android Package (with the extension .apk). These files contain everything the app needs to run – the audio, graphics etc. It then uploads the file to Google, which in turn sends it over the air to any user that wants to install the app.

All pretty obvious so far. 

But over the years, this process has become more complex. This is thanks to the success of the Android ecosystem. Android is open, which means a large number of OEMs now make devices that use the platform. These devices range from the most basic smartphone to a giant HD TV.

In an effort to cater to them all, some developers create multiple files, trusting that Google will push the appropriate one to any specific device. Obviously, only the better-resourced companies can do this. Smaller developers just create one file. Naturally, these files have become bigger as the addressable device universe has grown wider.

This inflation has some unfortunate side effects. For example, users are more likely to uninstall apps that take up lots of space. 

In 2018, Google took action: it launched the Android App Bundle – a new file type built to keep file size and complexity under control. 

Essentially, the Android App Bundle lets developers create one file with all the code and resources needed to run on all devices. But it is set up so that Google can push just what is necessary for a specific user device. 

In other words, Google is saying: don’t worry about the fragmentation; we’ll sort it out.

And in practice, what a difference this can make. When Google launched Android App Bundle, it referenced the Twitter app as an example. As you might imagine, Twitter needs to be available on every conceivable Android device. According to the company, this piles on the workload.

It said: “For Twitter to perform splits internally would require the maintenance of 500 APKs. With the Android App Bundle, we need only upload one binary with one version code. Dynamic delivery handles API density and language splits.”

Happily, app file sizes have fallen too. Google says they are, on average, around 35 percent smaller than before. In the case of the language learning app Duolingo, the new file size is 56 percent smaller.

Android App Bundle has made a big impact. Two years after launch, Google says 750,000 apps and games use it, representing more than 40 percent of all releases on Google Play. It estimates half of ‘top developers’ deploy it.

In an effort to improve things even more, Google recently introduced Play Asset and Play Feature Delivery. These two functions further modularise the app so that users can download certain features on demand. This further reduces average install times.

Be aware that, from August 2021, your app build will have to incorporate Play Asset Delivery or Play Feature Delivery if the file is more than 150MB.

So it’s best to get acquainted with Android App Bundle now. Thankfully, it is pretty easy. Google sums up the process in six steps.

  1. Write your code in an IDE such as Android Studio or an engine such as Unity as you normally would.
  2. When you’re ready to test or release the app, build it as an Android App Bundle. You still sign the app so that Google Play can verify it’s from you.
  3. Opt in to Play App Signing. 
  4. Upload your app bundle to Google Play, which will process and generate split APKs for every possible device configuration and language that you support. 
  5. When a user installs the app, Play delivers the base split APK it needs without wasted space. 
  6. Once your app is installed, Play will deliver additional split APKs on demand.

Yes, it’s another thing to think about. But if the result is less configuration and faster installs, maybe it’s time to get on board.