Мне интересно, как уменьшить размер кучи Java в Android, и я прочитал несколько вещей об освобождении памяти в Android, и мне интересно, как они сочетаются друг с другом и правильны ли они:
- Я где-то читал, что на устройствах, где
isLowRamDevice() == false
куча java на самом деле не уменьшается при освобождении памяти, предполагая, что эта стратегия может не сработать.Я не помню, где я читал это, но самая близкая корреляция между isLowRamDevice()
и освобождением памяти - this , и это напрямую не говорит об этом. - После прочтения о Пространстве Больших Объектов (LOS) в ART я вроде понял, что ТОЛЬКО объекты из этого пространства получают GC, а другие объекты не освобождают их (так же как куча java не уменьшится в размерепри освобождении объектов, которых нет в LOS).
- LOS согласно это определение содержит массивы примитивов и строк определенного размера.