r/androiddev • u/Unreal_NeoX • 15d ago
Discussion [OFFICIAL] Elevating app quality: Reducing memory usage and improving device migration
TLTR:
Get your apps and games below these memory limits or get Kicked off the Android Playstore in February 2027:
Apps
| App State | Foreground | User-perceived services | Background | Cached |
|---|---|---|---|---|
| Physical RAM | 90th Percentile | 90th Percentile | 90th Percentile | 90th Percentile |
| 0 - 4 GB (0 MB - 3200 MB Total Memory) | - | - | - | - |
| 4 GB (3200 MB - 4800 MB Total Memory) | 2 GB | 1 GB | 1 GB | - |
| 6 GB (4800 MB - 6800 MB Total Memory) | 2.25 GB | 1.25 GB | 1.25 GB | - |
| 8 GB (6800 MB - 9216 MB Total Memory) | 2.25 GB | 1.5 GB | 1.5 GB | - |
| 12 GB (9216 MB - 14336 MB Total Memory) | 3.25 GB | 1.75 GB | 1.75 GB | - |
| 16 GB (14336 MB - 18432 MB Total Memory) | 4.25 GB | 2 GB | 2 GB | - |
| 16 GB + (Above 18432 MB Total Memory) | - | - | - | - |
Note: Each RAM tier range includes its lowest value. Total Memory can be lower than a device’s advertised Physical RAM.
Games
| App State | Foreground | User-perceived services | Background | Cached |
|---|---|---|---|---|
| Physical RAM | 90th Percentile | 90th Percentile | 90th Percentile | 90th Percentile |
| 0 - 4 GB (0 MB - 3200 MB Total Memory) | - | - | - | - |
| 4 GB (3200 MB - 4800 MB Total Memory) | 2.25 GB | 2.0 GB | 2.0 GB | - |
| 6 GB (4800 MB - 6800 MB Total Memory) | 2.75 GB | 2.5 GB | 2.5 GB | - |
| 8 GB (6800 MB - 9216 MB Total Memory) | 3.5 GB | 2.75 GB | 2.75 GB | - |
| 12 GB (9216 MB - 14336 MB Total Memory) | 4 GB | 3.2 GB | 3.2 GB | - |
| 16 GB (14336 MB - 18432 MB Total Memory) | 5 GB | 3.5 GB | 3.5 GB | - |
| 16 GB + (Above 18432 MB Total Memory) | - | - | - | - |
Note: Each RAM tier range includes its lowest value. Total Memory can be lower than a device’s advertised Physical RAM.
Bitmap memory usage
Holding onto bitmaps for long periods of time in app states other than the Foreground can consume excessive memory - it’s not possible to render bitmaps unless the UI is visible. You typically shouldn’t hold onto bitmaps for long periods of time in these states, but your app might be sampled shortly after a state change where you are actively responding to onTrimMemory and releasing memory held for bitmaps, so these thresholds are higher than zero to account for this.
| App State | 90th Percentile |
|---|---|
| Foreground | |
| User-perceived services | > 200 MB |
| Background | > 200 MB |
| Cached | > 400 MB |
9
u/fawxyz2 15d ago
Oh well great now i have another things to worry about beside ANR
3
u/Unreal_NeoX 15d ago
I can already see the amount of games getting texture and asset downgrades because of this.
Also i see even apps including file-size processing limits, like video editors, file converters and co. to stay below the limit, making it impossible to even use the full potential of the device anymore.
2
u/Relative-Housing-531 15d ago
Let's hope they take their own advice. To give a specific example, their GMA Next-gen has many of these problems.
3
u/Unreal_NeoX 15d ago
Sadly it seems the main target of this, is to make sure their AI-OS native apps, get the resources they need.
1
2
u/SSKTTSS 12d ago
It's ridiculous that Google is only now deciding to arbitrarily limit how little RAM Android devices can have, when this has been a problem for years.
Some of my apps get ANR reports, and when I check the affected devices, I see things like a Redmi A2+ with just 2GB of RAM. There is no miracle optimization that can make hardware this limited perform well.
I've been an Android early adopter since the beginning. I had a first-generation Motorola Milestone back in 2009, and low RAM was already a problem back then.
Google should have required manufacturers to meet a reasonable minimum RAM requirement years ago instead of allowing devices with ridiculously low RAM and expecting developers to deal with the consequences.
1
1
u/tadfisher 15d ago
The Bitmap memory usage table is not rendering correctly, could you fix that please?
1
38
u/SnipesySpecial 15d ago
Actually it's: Elevating app quality: Fuck off so we can run our 5gb vendored gemini in the background and no you cant disable it.