Menu

i dissected my own 1.17 mb apk: where every byte actually goes
πŸ“°

i dissected my own 1.17 mb apk: where every byte actually goes

DEV Community: androidΒ·hammiΒ·about 8 hours ago
#1FZD6c5e
#devtoandroid#devto#dev#resources#native
Reading 0:00
15s threshold

i'm the developer of rkmovies, a 4k media player that ships as the tiny android apk page (1.17 mb) and the windows setup page (29.5 mb), with the web app on my little project site . people keep asking how an apk that plays 4k stays under 2 mb, so i ran apkanalyzer on my own release build and read the breakdown. this is what's inside.

the honest headline: there's almost nothing in it. a universal apk has four big buckets: classes.dex (your code), res/ + resources.arsc (layouts, strings, images), lib/ (native .so per abi), and META-INF/ (signatures). mine has no lib/ at all β€” zero native libraries β€” because the app is a webview shell that hands decoding to the device's mediacodec. that single decision is the whole size story.

dex was the first fight. r8 full mode + shrinkResources on the release build strips unreachable code and unused resources. the rule i live by now: features don't cost size, dependencies do. every library i add is measured with apkanalyzer -h apk file-size before and after.…

Continue reading β€” create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.