Three parts, one of them yours
An app built from web content is made of:
- The shell — activity code, AndroidX libraries and resources. About 4–5 MB for a WebView app, and effectively constant.
- Your content — only if it is bundled. A live-URL app ships none of it.
- Optional SDKs — push, analytics, ads. Each adds one to several megabytes and explains most quiet growth between releases.
The estimator measures the second part honestly: it runs each file through the browser's deflate implementation — the same algorithm that packs an APK — so text shows its real, dramatic shrinkage and already-compressed media shows its real lack of it.
APK size versus what people download
An APK carries every resource for every device in one file. An AAB is what you upload to Play, which generates a per-device APK from it and drops the densities, languages and CPU architectures that phone does not need — typically 20–35% less. The Play download figure is the one shown on your listing and the one a visitor on a metered connection weighs before tapping Install.
| Size | Meaning |
|---|---|
| ~15 MB | No technical limit — but installs measurably drop as downloads grow past this on slow networks. |
| 150 MB | Hard ceiling for a plain APK upload; beyond it you need a bundle. |
| 200 MB | Maximum single download generated from a bundle without extra configuration. |
| 4 GB | Absolute limit including asset packs — at which point an app is the wrong container. |
What genuinely shrinks an app
- Stream video, never bundle it. One intro clip outweighs every text file you will ever write.
- Convert images to WebP — 25–35% smaller than JPEG and PNG at the same visual quality. The WebP compressor does it in batch.
- Subset fonts to the characters and weights you render; a full variable family can be 1–2 MB.
- Remove unused libraries — a jQuery, Bootstrap and icon-font stack serving three components is dead weight.
- Exclude source maps and originals —
.mapfiles, PSDs and unminified copies sneak into ZIPs constantly. - Publish an AAB — a free saving from a different build target.
Bundle or load live?
Bundling means offline support and an instant first paint, at the price of shipping every byte and needing a release to change a page. A live URL keeps the app at the shell's baseline size and lets the site change any time, but every screen needs a connection. Many apps sit between: bundle the shell, CSS and icons, fetch the content. The dropdown above shows the cost of each approach, and the builder supports both.