2011-02-09 12 views
7

he encontrado algunas referencias y terminó con el siguiente código:¿Cuál es la forma más confiable de determinar la frecuencia de reloj de la CPU de los teléfonos con Android?

String[] args = { "/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" }; 

cmd = new ProcessBuilder(args); 

Process process = cmd.start(); 
InputStream in = process.getInputStream(); 
byte[] re = new byte[1024]; 
while (in.read(re) != -1) { 
    System.out.println(new String(re)); 
    result = result + new String(re); 
} 
in.close(); 

El código anterior funciona bastante bien, pero no todo el tiempo. He recibido algunos informes de que informa más que la frecuencia establecida por SetCPU en la configuración máxima en algunos teléfonos.

¿Existe alguna manera más confiable de encontrar la velocidad de reloj de los teléfonos con Android?

+4

¿Seguro que no es 'SetCPU' que es "decir mentiras"? –

+2

También podría ser que yo sea ingenuo, pero ¿por qué usar un proceso (no es el problema, solo me pregunto por motivos de rendimiento)? ¿por qué no simplemente obtener el inputtream del archivo directamente? Supongo que se necesitan los mismos permisos para ejecutar cat que leer el directorio de proceso. –

Respuesta

1

Si desea obtener la frecuencia actual se puede leer en:

/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 
+0

Eso es exactamente lo que hace, ¡pero es mucho más complicado! – Zordid

+0

@Zordid: Sí, es el mismo principio. Pero sugerí "scaling_cur_freq" mientras él estaba leyendo de "cpuinfo_max_freq", así obtendría la frecuencia actual. La frecuencia actual debería ser más confiable que la frecuencia máxima, que se puede configurar con diferentes herramientas de diferentes maneras. – Chris

Cuestiones relacionadas