If your Unity-built Android game is creeping past the 100MB Google Play threshold or simply taking too long to download, you are losing installs. Studies consistently show that install conversion drops sharply for every additional 10MB of APK weight. The good news: most Unity games carry a lot of fat that can be trimmed without sacrificing quality.
In this practical walkthrough, we shrunk a sample Unity 2026 LTS Android project from 187 MB down to 42 MB using the nine techniques below. Every section includes the actual size delta we measured so you can prioritize what matters most for your project.
Our Sample Project Baseline
Before diving in, here is what we started with:
- Engine: Unity 2026.1 LTS
- Render pipeline: URP
- Target: Android, ARM64 + ARMv7
- Content: 12 scenes, 340 textures, 28 audio clips, 14 3D models, TextMeshPro, Cinemachine
- Initial APK size: 187 MB (universal APK, IL2CPP, Mono stripped Low)

1. Switch to AAB (Android App Bundle) and Split Binaries
The single biggest win for most Unity games. Google Play has required the Android App Bundle (.aab) format since 2021, and it ships only the architecture-specific code each device actually needs.
In Unity, go to Player Settings > Publishing Settings and enable Build App Bundle (Google Play). Also check Split Application Binary if you still distribute APKs outside Play.
| Build type | Size delivered to device |
|---|---|
| Universal APK (ARM64 + ARMv7) | 187 MB |
| AAB (ARM64-only split) | 132 MB |
Savings: 55 MB.
2. Compress Textures Properly (ASTC over ETC2)
Textures are typically 60 to 80% of a Unity game APK. Most developers leave them on default settings, which is enormous waste.
Recommended texture settings for Android in 2026
- Format: ASTC 6×6 for general textures, ASTC 8×8 for backgrounds and UI atlases
- Max size: 1024 for most assets, 2048 only when truly needed
- Mip Maps: disabled for UI and 2D sprites
- Read/Write: disabled (this alone halves runtime memory)
ASTC is supported on virtually every Android device shipped after 2017 and produces noticeably smaller files than ETC2 at the same visual quality.
| Texture setting | APK size |
|---|---|
| Default (RGBA 32 / ETC2) | 132 MB |
| ASTC 6×6, max 1024, no mips on UI | 89 MB |
Savings: 43 MB.
3. Strip Unused Engine Code with IL2CPP + High Stripping
Unity ships a lot of modules you probably do not use. Set:
- Scripting Backend: IL2CPP
- Managed Stripping Level: High (or Minimal if you hit reflection issues)
- Strip Engine Code: enabled
- Target Architectures: ARM64 only (ARMv7 is end-of-life on Play Store)
Then open the Package Manager and remove modules you do not use: Cloth, Terrain, Vehicles, XR, Unity Analytics, Ads, etc.
Savings: 11 MB. APK now at 78 MB.
4. Use Addressables and Asset Bundles
Instead of bundling every level, character skin, and language pack into the APK, host them remotely and download on demand using Unity Addressables.
This pattern is what Reddit and Stack Overflow refer to as progressive downloads: ship a small core, fetch the rest as the player progresses.
In our sample project we moved levels 4 to 12, optional cosmetics, and localized audio out of the build.
Savings: 24 MB. APK now at 54 MB.

5. Compress Audio Aggressively
Audio is the second biggest offender after textures. Recommended settings:
- Music and ambient: Vorbis, quality 40 to 50, Streaming load type
- Short SFX: Vorbis, quality 70, Decompress on Load
- Force to Mono: enabled for any non-stereo essential sound
- Sample rate: Override to 22050 Hz for SFX, 44100 only for music
Savings: 6 MB.
6. Optimize Meshes and Models
For each imported model:
- Disable Read/Write
- Set Mesh Compression to Medium or High
- Disable Import BlendShapes, Import Cameras, Import Lights if unused
- Strip animation curves you do not need with Optimize Game Objects
Savings: 3 MB.
7. Find and Delete Unused Assets
Run the Build Report Inspector (free Unity package) after every build. It tells you exactly what is bloating your APK, sorted by size. You will almost always find:
- Demo scenes from third-party assets
- Duplicate textures imported at full RGBA
- Editor-only assets accidentally referenced from a runtime scene
- Multiple TextMeshPro fallback fonts you never use
Savings: 4 MB.
8. Procedurally Generate What You Can
Google itself recommends this in their official documentation. Gradients, noise textures, simple UI shapes, particle textures, and even some terrain details can be generated at runtime with shaders rather than stored as image files.
Replacing 18 gradient and noise textures with shader-based equivalents in our sample saved 2 MB.

9. Enable LZ4HC Compression and Strip Symbols
In Player Settings > Other Settings:
- Set Compression Method to LZ4HC for release builds
- Set Debug Symbols to Off or Public only
- Disable Development Build
Savings: ~3 MB.
Final Results: Before and After
| Stage | Size | Reduction |
|---|---|---|
| Initial universal APK | 187 MB | baseline |
| + AAB / ARM64 split | 132 MB | -29% |
| + ASTC textures | 89 MB | -52% |
| + Code stripping | 78 MB | -58% |
| + Addressables | 54 MB | -71% |
| + Audio, mesh, cleanup, shaders, LZ4HC | 42 MB | -77% |
Quick Checklist Before You Ship
- Build as AAB, ARM64 only
- All textures in ASTC, max 1024, Read/Write off
- IL2CPP + High stripping + unused modules removed
- Addressables for non-essential content
- Audio in Vorbis, mono where possible
- Meshes compressed, Read/Write off
- Build Report reviewed, dead assets deleted
- LZ4HC compression, no debug symbols
FAQ
What is the maximum APK size on Google Play in 2026?
The base APK delivered to a device must stay under 200 MB, and the total compressed download (including asset packs) cannot exceed 2 GB. However, conversion data shows you should aim for under 100 MB and ideally under 50 MB for casual games.
Does ProGuard or R8 help in Unity Android builds?
Partially. R8 (the modern replacement for ProGuard) helps minify the Java/Kotlin layer of your APK, including Firebase, Google Play Services, and ad SDKs. Enable Minify > Release in Player Settings. The bulk of Unity game weight is C# IL2CPP code and assets, so R8 alone gives modest savings of 2 to 5 MB.
Should I still ship ARMv7 in 2026?
No. Google Play has required 64-bit support for years and the share of ARMv7-only devices is now negligible. Shipping ARM64 only roughly halves your native code size.
Are AAB files smaller than APK files?
The AAB itself uploaded to Google Play is usually larger because it contains every architecture and every density. What matters is the device-specific split APK that Play generates and delivers, which is significantly smaller than a universal APK.
How can I see exactly what is taking space in my APK?
Use Unity’s built-in Editor Log after a build (it lists assets by size), the free Build Report Inspector package, or Android Studio’s APK Analyzer for the final binary.
Need Help Optimizing Your Game?
At Falanxia we help studios ship leaner, faster mobile games. If your APK is fighting you, get in touch and we will run a free 30-minute audit on your build.
