Простой метод получения общей и доступной оперативной памяти приведен ниже:
//Method call returns the free RAM currently and returned value is in bytes.
Runtime.getRuntime().freeMemory();
//Method call returns the total RAM currently and returned value is in bytes.
Runtime.getRuntime().maxMemory();
Надеюсь, это сработает.
Для форматирования значения в КБ и МБ можно использовать следующий метод:
/**
* Method to format the given long value in human readable value of memory.
* i.e with suffix as KB and MB and comma separated digits.
*
* @param size Total size in long to be formatted. <b>Unit of input value is assumed as bytes.</b>
* @return String the formatted value. e.g for input value 1024 it will return 1KB.
* <p> For the values less than 1KB i.e. same input value will return back. e.g. for input 900 the return value will be 900.</p>
*/
private String formatSize(long size) {
String suffix = null;
if (size >= 1024) {
suffix = " KB";
size /= 1024;
if (size >= 1024) {
suffix = " MB";
size /= 1024;
}
}
StringBuilder resultBuffer = new StringBuilder(Long.toString(size));
int commaOffset = resultBuffer.length() - 3;
while (commaOffset > 0) {
resultBuffer.insert(commaOffset, ',');
commaOffset -= 3;
}
if (suffix != null) resultBuffer.append(suffix);
return resultBuffer.toString();
}
Тело метода может быть настроено для получения желаемых результатов.