AAB (Android App Bundle)
An AAB, or Android App Bundle, is the .aab publishing format Google Play requires for new apps: a container of your compiled code and resources that Play uses to generate the actual APKs devices download.
You no longer ship the installable artefact. Play splits the bundle by device configuration, so a phone downloads only the screen density, CPU architecture and language it needs. That is the point of the format, and it usually cuts download size meaningfully.
New apps have had to use AAB since August 2021. Apps that were already published before then can still ship APK updates, which is why plenty of long-lived apps have never touched a bundle. Distribution outside Play, whether direct download, Amazon, Samsung or F-Droid, still uses APKs, so many projects build both.
The catch is signing. Because Play generates and signs the delivered APKs, uploading a bundle means enrolling in Play App Signing, and Google holds the app signing key. You keep an upload key, which is what you sign the bundle with and which can be replaced if lost. The app signing key cannot be replaced once users have installed your app.
Bundles have a download size limit for the base plus configuration APKs, with Play Asset Delivery and Play Feature Delivery as the routes past it.
To test what users actually get, generate APKs from the bundle with bundletool rather than testing the debug build.
See also: Play Console, Play Developer API, track.