Концепция управления памятью Linux «Свободная память - это потерянная память».
Я предполагаю, что следующие две строки показывают, сколько памяти находится в «Буферах» и сколько «кэшировано». Хотя есть разница между ними (пожалуйста, не спрашивайте, какова эта разница :), они оба примерно совпадают с объемом памяти, используемой для кэширования файловых данных и метаданных.
Более полезным руководством по бесплатной памяти в системе Linux является команда free(1)
; на моем рабочем столе, он сообщает информацию, как это:
$ free -m
total used free shared buffers cached
Mem: 5980 1055 4924 0 91 374
-/+ buffers/cache: 589 5391
Swap: 6347 0 6347
+/- буфера/кэш: линия магия линия, она сообщает, что я действительно получил около 589 мегабайтов активно требуемой памяти процесса, и вокруг 5391 мегабайт «свободной» памяти в том смысле, что 91 + 374 мегабайт буферов/кэшированной памяти можно выбросить, если память может быть более выгодно использована в других местах.
(Моя машина была в течение приблизительно трех часов, не делая почти ничего, кроме StackOverflow, поэтому у меня так много свободной памяти.)
Если Android не поставляется с free(1)
, вы можете сделать математику самостоятельно с файлом /proc/meminfo
; Мне просто нравится формат вывода free(1)
. :)
Вы пытаетесь увидеть свободную память на устройство или на приложение? Если для каждого приложения, то его нужно вычислить в куче a-la 'Debug.getNativeHeapFreeSize()'. –
Чтобы вычислить свободную память (в ОЗУ) с помощью/proc/meminfo, вы должны получить совокупность * MemFree *, * Buffers *, * Cached * и * SwapCached *. Существует API для этой цели, предоставляемый Android, который работает на API 16 и в палатах. Meminfo полезен, если вы ориентируетесь на более старые API. –