Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /var/www/html/wp-content/plugins/google-site-kit/includes/Core/Admin/Standalone.php on line 95

Deprecated: filter_input(): Passing null to parameter #4 ($options) of type array|int is deprecated in /var/www/html/wp-content/plugins/google-site-kit/includes/Core/Util/Input.php on line 64

Deprecated: filter_input(): Passing null to parameter #4 ($options) of type array|int is deprecated in /var/www/html/wp-content/plugins/google-site-kit/includes/Core/Util/Input.php on line 64

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/conditionals/third-party/elementor-edit-conditional.php on line 22

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/conditionals/third-party/elementor-edit-conditional.php on line 28

Deprecated: filter_input(): Passing null to parameter #4 ($options) of type array|int is deprecated in /var/www/html/wp-content/plugins/google-site-kit/includes/Core/Util/Input.php on line 64

Deprecated: filter_input(): Passing null to parameter #4 ($options) of type array|int is deprecated in /var/www/html/wp-content/plugins/google-site-kit/includes/Core/Util/Input.php on line 64

Deprecated: filter_input(): Passing null to parameter #4 ($options) of type array|int is deprecated in /var/www/html/wp-content/plugins/google-site-kit/includes/Core/Util/Input.php on line 64

Deprecated: filter_input(): Passing null to parameter #4 ($options) of type array|int is deprecated in /var/www/html/wp-content/plugins/google-site-kit/includes/Core/Util/Input.php on line 64
APK vs AAB (Android App Bundles): Learn the Differences! » Sinzika
Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

APK vs AAB (Android App Bundles): Learn the Differences!

Android 12 is almost here, and Google is making fewer fundamental changes to how apps are delivered and distributed on the platform. By Janaury 2022, all new apps on the Play Store will be published in the Android App Bundles (.aab) file format, making them easier to add to phones.

How does an APK differ from an Android App Bundle (AAB)? Is it possible to sideload AABs like we do APKs? You can find a detailed explanation of the differences between APK and AAB here. Let’s get right to it without further delay.

APK vs AAB (Android App Bundles): A Comprehensive Comparison

This article outlines both AAB and APK formats in layman’s terms for easy understanding by anyone. As well as installing AABs, extracting APKs from AABs, and others are detailed in our tutorials. You can navigate quickly to the section you need by clicking on any of the sections below.

APK vs AAB: Understanding the Basics

For a proper understanding of what an APK and an APK bundle are, we need to grasp some basic concepts.

The Android APK has served as the main app distribution package since it was conceived. App Signing Key – This key is generated by the developer and is essential to generating APKs. There are various forms and specifications of Android devices.

You can find devices with varying levels of mobile density (320dpi, 480dpi), processor types (ARM, ARM64, x86), and so on. A language pack must also be included in the app based on the user’s location (en, fr, ger, etc.).

AAB Requirement
AAB Requirement

An ideal situation would be to have the developer develop and upload multiple APKs to the Google Play Store depending on the user’s location, CPU type, and screen density.

The correct and most-suited APK is then installed on the device when a user taps on the “Install” button in the Play Store.

This leaves the developer with a daunting task. APKs must be managed to support a boatload of devices in addition to developing apps.

Many companies build Universal APKs that come with all the resources (language packs, codes, etc.) even if you may not need them for your device. As a result, the APK becomes large and bulky, taking up more bandwidth and requiring more installation time.

Through Android App Bundles (AAB), Google expects to eliminate most of these complexities for developers. By doing so, the app size, installation time, and bandwidth usage will be reduced.

Google introduced AAB at Google I/O 2018, and now, nearly two years later, the company requires new apps to be submitted in AAB on the Play Store.

This format is similar to APK, but not entirely new. The AAB container hosts multiple split-APKs in addition to the base APK.

Developers submit AAB files to the Play Store, while Android users install APK files on their devices.

Then what exactly has changed? The workaround for managing a wide array of devices APKs is being introduced starting in August 2022. In AAB, developers give Google everything, including the app code, assets, heavy resources, all language packs, and most importantly, the private signing key.

You can now enable Google to serve users’ APKs based on their device configuration. Using this method, we can create a smaller AAB bundle that will install on any device in a jiffy and consume fewer data. There is certainly more to AAB vs APK than that.

The Sharing of Private Signing Key with Google

AAB appears to be an excellent alternative to APK based on what it offers. By using the AAB format, developers do not have to create multiple APKs for a single app.

Google’s plan to share private signing keys with developers has raised concerns from many developers.

For verifying the integrity of the APK, it is imperative to know the signing key. If you sideload an APK from a third-party source, the Google Play Store is still checking for tampering by checking the signing key.

Google’s AAB requires that developers must share their private signing key with all other developers as Google will generate the app bundle and sign the AAB with their private key.

If the key to install the app or update matches, Play Services will install the app or update without experiencing issues related to key mismatch or failed signatures. In light of this, developers note that code injection may be possible.

You can rest assured that all of your private signing keys are protected with ironclad security on the same infrastructure as Google’s keys.

In addition to this, Google announced Code Transparency, which will enable developers to generate the bundle tooth that is only accessible by them.

By using the separate private key, developers can create an extra signature that can be used for determining an app’s integrity.

The downside of this method is that it is limited. Assets, resources, and manifests are not included in Code Transparency. This is also a feature that developers are not necessarily required to implement.

Is AAB Going to Make Things Harder for Third-party App Stores?

Furthermore, sharing keys with Google could likely lead to third-party app stores having a harder time getting their apps approved.

You will encounter a signature mismatch, for instance, if you install an app from the Play Store and want to update from an alternative Play Store (for example, the Amazon App Store or Aptoide Store).

You cannot use the same key during uploading to a third-party Android app store because Google controls your signing key.

You must use another private key, which will cause the private key mismatch. Can Android apps be supported on Windows 11?

Google Playstore is coming to the Microsoft Store with Android apps

In any event, the notion that AAB will prevent developers from uploading APKs to third-party app stores appears incorrect. Currently, developers can create APKs using a Google open-source tool called bundle tool.

Currently, the only issue is that Android power users will have to share their private signing key.

Can We Sideload AABs Just Like APKs?

We know that sideloading AABs on Android devices will be possible, however, it will not be as convenient as sideloading APKs. AAB packaging is not supported by Android’s package installer.

Therefore, AAB will not be able to be installed natively on Android devices. You can, however, use third-party apps to install AAB packages on your device.

You can, for example, install APKMirror Installer (Free, has in-app purchases) with its installer app which allows you to install APKM bundles (Base APK + Split APKs). You can read more about how to install Android App Bundles on your phone in the linked article.

You will not be able to install AABs without sideloading from an ADB. You are going to need to use an open-source tool called bundle tool to get the proper APK. With the popularity of AABs increasing, a variety of new and convenient sideloading methods might emerge. Please note that just installing the Base APK will crash your device.

APK vs AAB: Advantages and Disadvantages

You can see from going through all the points that most users won’t notice any significant change in their experience with AABs. Most users will find it helpful to reduce the size of the app. After switching from APK to AAB, Airbnb’s app size shrank by 22%, whereas Netflix’s shrank by 57%. App size has changed by a considerable margin. Additionally, the abandoned Instant app feature on Android devices will be given another chance with AAB.

There are some difficulties and inconveniences for power users who want to sideload AABs. Depending on your device, you will need to use the bundle separate sections are covering tool to extract APKs or make use of a third-party installer.

As you may know, AAB will move away from OBB (Opaque binary blob) as the main method of downloading large assets and resources. To download heavy resources up to 150MB in size, it will instead use Play Asset Delivery or Play Feature Delivery.

The impact of sideloading is to be seen on games like Battlegrounds Mobile India, PUBG Mobile, FAU-G, and more.

This change doesn’t require refactoring of code for developers most affected, so that’s a good thing. Modularity is another advantage of AABs since they can update single pieces of code and merge them into the core without encountering many conflicts.

This gives developers the option to customize AAB. You can choose what API level to target or what device type to support.

They can also choose which features to offer on specific device types or smartphone platforms that are running the minimum SDK versions.

A key concern is sharing private keys, which Google will now manage. APKs might be incompatible with third-party app stores, and the developers will need to go the extra mile to publish and maintain them (just as they do in the Play Store right now).

APK vs AAB (Android App Bundles): What Do You Think?

It is my opinion that this change is overly dependent on Google. By moving to this new app store, Google ensures Play Store remains the de facto app store on Android devices. Android apps are now hosted on Google’s servers for all aspects of app distribution and publishing.

It might be more convenient for developers now that they don’t have to manage multiple APKs, but how will it affect the users long term? It’s too early to tell. Is Google’s move to have developers hand over control a positive change?

The jury is still out. We’re done here. Comment below if you have an opinion about APKs vs. AABs.


Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/html/wp-includes/comment-template.php on line 2657

Leave a Comment