APK Size Analyser Runs in your browser

Drop an .apk or .aab here

or choose a file

Your file never leaves your browser. There is no server and nothing is uploaded. Only the archive index is read, so even large builds analyse instantly.

How it works

An APK is a ZIP file with a fixed layout, and an AAB is a ZIP too. Every ZIP ends with a central directory: an index listing every file inside it along with its compressed and uncompressed size. This tool reads only that index, which is why it can measure a 200 MB build in a fraction of a second without ever decompressing it, and without sending it anywhere.

Native libraries

Anything under lib/, split by CPU architecture (ABI). A phone uses exactly one: almost always arm64-v8a on modern devices. If your build contains four architectures, roughly three quarters of that section is dead weight for every individual user. This is usually the single biggest saving available.

Resources and density buckets

Android ships bitmaps at several pixel densities: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. A device loads one bucket and ignores the rest. Folders marked nodpi or anydpi are density-independent and always delivered, which is why vector drawables shrink apps so effectively — one file replaces five bitmaps.

Assets

Files under assets/ are shipped exactly as you provide them. Nothing strips, splits or shrinks them. Fonts, bundled videos and machine-learning models tend to accumulate here unnoticed.

Code

classes.dex (and classes2.dex, and so on) hold your compiled code and every library you depend on. A dex section that dominates the file usually means unused library code is being retained — worth confirming R8 minification is switched on for release builds.

Why the Play Store download is smaller than your file

When you upload an App Bundle, Google Play generates a tailored download for each device: one architecture, one density bucket, one language. That is what the estimate above models. A universal APK, by contrast, hands every device everything and lets it ignore what it cannot use.

Questions

Is my file uploaded anywhere?

No. There is no backend. The parsing runs in JavaScript inside your own browser, in a background thread. You can disconnect from the internet after the page loads and it will still work.

Does it work on AAB files?

Yes. Bundles nest everything under a module folder such as base/; that is stripped before classifying, so the same categories apply. For a bundle the tool will not claim architecture savings, because Play already splits those for you.

What is an ABI?

An Application Binary Interface — the instruction set your compiled C or C++ code targets. arm64-v8a covers essentially all current phones. x86 and x86_64 are mainly emulators and a small number of Chromebooks.

Why is my APK bigger than the size shown on the Play Store?

Because the store figure is the tailored download for the device asking, not the whole artefact. The estimate here approximates that for a typical arm64, xxhdpi, English device.

Are the numbers exact?

Category and file sizes are read directly from the archive and are exact. The delivery estimate is a model, not a promise — real splits depend on your bundle configuration and the requesting device.