La filosofia di gestione della memoria di Linux è "La memoria libera è memoria sprecata".
Suppongo che le prossime due righe mostreranno quanto memoria è in "Buffer" e quanto è "In cache". Mentre c'è una differenza tra i due (per favore non chiedere quale sia questa differenza :) entrambi sommano approssimativamente la quantità di memoria usata per memorizzare i dati dei file e i metadati.
Una guida molto più utile per liberare memoria su un sistema Linux è il comando free(1)
; sul mio desktop, riporta le informazioni in questo modo:
$ free -m
total used free shared buffers cached
Mem: 5980 1055 4924 0 91 374
-/+ buffers/cache: 589 5391
Swap: 6347 0 6347
La +/- buffer/cache: la linea è la linea magica, si riferisce che ho davvero avuto intorno a 589 mega di memoria processo necessario attivamente, e intorno 5391 mega di memoria "libera", nel senso che i 91 + 374 megabyte di memoria buffer/cache possono essere gettati via se la memoria potrebbe essere utilizzata in modo più proficuo altrove.
(La mia macchina è stato per circa tre ore, facendo quasi nulla, ma StackOverflow, che è il motivo per cui ho tanto libera di memoria.)
Se Android non viene fornito con free(1)
, si può fare la matematica te stesso con il file /proc/meminfo
; Mi piace solo il formato di output free(1)
. :)
Stai cercando di visualizzare la memoria libera per dispositivo o per app? Se per app, deve essere calcolato sull'heap a-la 'Debug.getNativeHeapFreeSize()'. –
Per calcolare la memoria libera (in RAM) usando/proc/meminfo è necessario ottenere l'aggregato di * MemFree *, * Buffers *, * Cached * e * SwapCached *. C'è un'API per questo scopo fornita da Android che funziona su API 16 e su reparti. Meminfo è utile se stai prendendo di mira API precedenti. –