04 August 2020
Posted by Dom Elliott and Yafit Becher, Product Managers at Google Play
In a little over two years, the Android App Bundle has become the gold standard for publishing on Google Play. Over 600,000 apps and games currently use the app bundle in production, representing over 40% of all releases on Google Play. App bundles are used by 50% of the top developers on Google Play — such as Adobe, which used app bundles to reduce the size of Adobe Acrobat Reader by 20%.
We recently launched Play Asset Delivery (PAD), bringing the great benefits of app bundles to games and allowing developers to improve the user experience while cutting delivery costs and reducing the size of their games. Gameloft used PAD to improve user retention, resulting in 10% more new players than with their previous asset delivery system.
For those of you making the switch, we’ve published some FAQs on Play App Signing — required for app bundles — as well as guidance on how to test your app bundle. Read on to find out more about the recent improvements we’ve made to developing, testing, and publishing with app bundles.
Play Feature Delivery
The app bundle enables modular app development using dynamic feature modules with a range of customizable delivery options. It’s now possible to shrink resources in dynamic feature modules as well as your base module when building modular apps. This long-requested feature can result in significantly greater size reduction of your apps. The feature is available from Android Studio 4.2, currently in Canary, under the experimental flag: android.experimental.enableNewResourceShrinker=true
.
By default, install time modules are now automatically fused when app bundles are processed into distribution APKs (starting in bundletool 1.0.0). This means you can separate your app into modules during development while reducing the number of APKs distributed to each device, which will speed up your app’s download and installation. You can choose to set a “removable flag” for install-time modules to prevent fusing, which allows you to uninstall a module on the device after it’s been used. It’s a good idea to remove large modules once they’re no longer needed — reducing the size of your app can make it less likely to be uninstalled.
Feature-to-feature dependency is now stable in Android Studio 4.0, so you can specify that a dynamic feature module depends on another feature module. Being able to define this relationship ensures that your app has the required modules to unlock additional functionality, resulting in fewer requests and easier modularization of your app.
We know that it is critical for you to test your app delivery and get the same experience as your users would in the wild. Internal app sharing lets you upload test builds to Play and get a sharable link to download your app. When downloading your app from this link, you get an identical binary as would be served to users once your app is released to Play.
Play Asset Delivery
Play Asset Delivery extends the app bundle format, allowing you to package up to 2GB of game assets alongside the binary in a single artifact published on Google Play. PAD lets games larger than 150MB replace the legacy expansion files (OBBs) and rely on Play to keep assets up to date, just like you do with your game binary. It also takes care of compression and delta patching, minimizing the size of the download and getting your game to update faster.
You can then choose one of three delivery modes, depending on when you want those assets to be served to users: install-time, as part of the initial game installation; on-demand, so assets will be delivered only upon request; or fast-follow, which will trigger an additional download immediately after the game installation completes, independently of the user opening the app. Fast-follow lets you minimize time to first interaction while getting assets to users as quickly as possible.
In the coming months, we’ll release texture compression format targeting, which will allow you to include multiple texture compression format assets and rely on us to deliver them to the most advanced format supported by the requesting device.
Learn more in this session from our Game Developer Summit and check out the documentation to see integration options for Unity, Unreal Engine, Gradle, Native, and Java support.
Google Play’s best-in-class distribution
Google Play delivers billions of apps, games, updates, and dynamic feature modules every month to Android users on thousands of device types around the world. We invest a lot of time and energy into making sure your content is delivered to users as seamlessly and efficiently as possible while hiding the complexity from the user experience.
For example, we recently upgraded the download service Google Play uses. This change alone has sped up the installation of app bundle apps by an average of 6% and increased install success globally by 1%, resulting in millions more new installs for developers every week.
We’re also rolling out multiple improvements to dynamic feature module distribution, such as allowing them to be installed when your app is VISIBLE or higher, lowering the free storage threshold that triggers insufficient storage errors, and removing user confirmation for large dynamic features over Wi-Fi. This alone has resulted in 12% more successful deferred module downloads. Apps using dynamic features will benefit from these changes automatically.
Requirement for new apps in the second half of 2021
We’re continuing to make app bundles a better publishing format than APKs on Google Play. For example, the new app bundle explorer lets you manage all your app bundles in one place. You can download and attest the exact APKs that Play generates for delivery, as well as a signed, universal APK (a single, installable APK that includes all code and resources needed for supported devices) that you can use on other distribution channels.
We’ve been thrilled to see the app bundle embraced by the app and game ecosystem, and we’re excited to continue to improve it. As we announced in the Android 11 event, to help us invest in future improvements, we intend to require new apps and games to publish with the Android App Bundle on Google Play in the second half of 2021. In the same timeframe, we will deprecate legacy APK expansion files (OBBs), making Play Asset Delivery the standard option for publishing games over 150MB. We will also require instant experiences to be published via instant-enabled app bundles, deprecating the legacy instant app ZIP format.
Thank you to everyone who has already made the switch to the Android App Bundle, and a special thanks to those of you who’ve shared your feedback. Your comments help us shape the future of app bundles and improve the technology for everyone, so please continue to let us know what you think.
How useful did you find this blog post?