2012-04-18 15 views
6

Estoy tratando de encontrar programáticamente la información del sistema para los dispositivos Android, en concreto:programación encontrar información sistema Android

  • RAM
  • velocidad de la CPU
  • # núcleos, arquitectura, etc.

¿Hay alguna clase de Android que especifique esta información? He estado usando la biblioteca de android.board, pero no parece tener todo lo que quiero.

Respuesta

11

Déjame decirte lo que hice, para que aquellos que visitan este hilo puede ven a conocer los pasos:

1) comando parse/proc/meminfo. Puede encontrar el código de referencia aquí: Get Memory Usage in Android 2) el uso por debajo de código y obtener RAM actual,

MemoryInfo mi = new MemoryInfo(); 
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
activityManager.getMemoryInfo(mi); 
long availableMegs = mi.availMem/1048576L; 

Nota: tenga en cuenta que - tenemos que calcular la memoria total de una sola vez. así que llame al punto 1 solo una vez en su código y luego, puede llamar al código del punto 2 repetitivamente.

2

Puede obtener la mayor parte de la información que desee del archivo /proc/cpuinfo. Aquí hay un tutorial sobre cómo cargar y analizar ese archivo: http://www.roman10.net/how-to-get-cpu-information-on-android/

Además, la información sobre la memoria RAM se puede obtener a partir del archivo /proc/meminfo

+0

meminfo no le dará el ram completo instalado. te da información sobre el ram utilizado. y caliente se usa. entonces la respuesta no es correcta – drdrej

1

La respuesta de Agarwal fue muy útil. Tenido que modificar un poco ya que no estoy cálculo de memoria libre en una actividad, pero al pasar en un contexto de aplicación a un archivo de utilidades del sistema:

de la actividad principal:

public class MyActivity extends Activity { 
    ... 
    public void onCreate(Bundle savedInstanceState) { 
     ... 
     MySystemUtils systemUtils = new MySystemUtils(this); // initializations 
     ... 
    } 
} 

En el archivo SystemUtils :

MySystemUtils (Context appContext) { // called once from within onCreate 
     MemoryInfo mi = new MemoryInfo(); 
     ActivityManager activityManager = ActivityManager)appContext.getSystemService(Activity.ACTIVITY_SERVICE); 
     activityManager.getMemoryInfo(mi); 
     long availableMegs = mi.availMem/1048576L; 
    } 
2

Aquí está el fragmento de código para obtener el tamaño actual de RAM del dispositivo.

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