¿Cómo obtener el tamaño total de RAM de un dispositivo?

Quiero obtener el tamaño de RAM completo de un dispositivo. memoryInfo.getTotalPss() devuelve 0. No hay función para obtener el tamaño de RAM total en ActivityManager.MemoryInfo .

¿Como hacer esto?

Comando estándar de Unix: $ cat /proc/meminfo

Tenga en cuenta que /proc/meminfo es un archivo. En realidad no tienes que ejecutar cat , simplemente puedes leer el archivo.

A partir del nivel 16 de la API, ahora puede usar la propiedad totalMem de la clase MemoryInfo .

Me gusta esto:

 ActivityManager actManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo(); actManager.getMemoryInfo(memInfo); long totalMemory = memInfo.totalMem; 

Api nivel 15 y menor aún requiere usar el comando unix como se muestra en la respuesta de cweiske .

Puedo obtener la memoria RAM utilizable de tal manera

 public String getTotalRAM() { RandomAccessFile reader = null; String load = null; DecimalFormat twoDecimalForm = new DecimalFormat("#.##"); double totRam = 0; String lastValue = ""; try { reader = new RandomAccessFile("/proc/meminfo", "r"); load = reader.readLine(); // Get the Number value from the string Pattern p = Pattern.compile("(\\d+)"); Matcher m = p.matcher(load); String value = ""; while (m.find()) { value = m.group(1); // System.out.println("Ram : " + value); } reader.close(); totRam = Double.parseDouble(value); // totRam = totRam / 1024; double mb = totRam / 1024.0; double gb = totRam / 1048576.0; double tb = totRam / 1073741824.0; if (tb > 1) { lastValue = twoDecimalForm.format(tb).concat(" TB"); } else if (gb > 1) { lastValue = twoDecimalForm.format(gb).concat(" GB"); } else if (mb > 1) { lastValue = twoDecimalForm.format(mb).concat(" MB"); } else { lastValue = twoDecimalForm.format(totRam).concat(" KB"); } } catch (IOException ex) { ex.printStackTrace(); } finally { // Streams.close(reader); } return lastValue; } 

Probado hasta Android 4.3: SAMSUNG S3

Puedes obtener el tamaño total de la RAM usando este código:

  var activityManager = GetSystemService (Activity.ActivityService) como ActivityManager;
 var memoryInfo = new ActivityManager.MemoryInfo ();
 activityManager.GetMemoryInfo (memoryInfo);

 var totalRam = memoryInfo.TotalMem / (1024 * 1024); 

Si el dispositivo tiene 1GB de RAM, totalRam será 1000.