- Google Suggested minimal Java heap limit setting from chapter 3.7 of Android Compatibility Definition Document as below table. Although some devices might set higher heap limit than Google suggested minimal value, app should meet the Google suggested minimal Java heap limit to make sure app can execute without problem on all competitor devices. In other words, app that consumes larger memory usage than Google suggested minimal Java heap limit may run without problem on A device, but may meet OutOfMemoryError on B device.
- Please be noted Google doesn’t give suggested Large Heap Limit setting in CDD. Google only defines default heap limits for each Screen size/DPI. It’s not suggested to set largeHeap=ture since it has risk to run on competitor devices with variant large heap limits. Thus, app still has chance to meet OutOfMemoryError even with largeHeap set as true on some devices.
- Google also suggests “not” to set largeHeap as below
Most apps should not need this and should instead focus on reducing their overall memory usage for improved performance.
Enabling this also does not guarantee a fixed increase in available memory, because some devices are constrained by their
total available memory. - HMS apps should meet defined memory quota for running on competitor devices without problem, since the memory quota is defined according to app’s characteristics and makes sure the usage won’t cause memory problem on competitor devices.
Screen Size | Screen Density | Application Memory |
---|---|---|
small / normal / large | large ldpi / mdpi | 16MB |
small / normal / large | tvdpi / hdpi | 32MB |
small / normal / large | large xhdpi | 64MB |
small / normal / large | large 400dpi | 96MB |
small / normal / large | xxdpi | 128MB |
xlarge | mdpi | 32MB |
xlarge | tvdpi / hdpi | 64MB |
xlarge | xhdpi | 128MB |
xlarge | 400dpi | 192MB |
xlarge | xxhdpi | 256MB |