Android obtiene información de la CPU del sistema, memoria, versión, consumo de energía, etc.
1. Frecuencia de CPU, información de CPU: /proc/cpuinfo y /proc/stat
Leyendo el tipo de CPU del sistema y otra información diversa en el archivo /proc/cpuinfo.
import java.io.InputStream;
public class CpuManager {
// Obtener la frecuencia máxima de CPU en KHZ
// Línea de comando "/system/bin/cat"
// "/sys/ devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" Archivo para almacenar la frecuencia máxima.path
cadena estática pública getMaxCpuFreq() {
resultado de cadena = ""
cmd de ProcessBuilder
prueba {
cadena[] args; = { "/ system/bin/cat",
"/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" }
cmd = new ProcessBuilder(args) ;
Proceso proceso = cmd.
start();
InputStream in = proceso.getInputStream();
byte[] re = nuevo byte[24]; (re) ! = -1) {
resultado = resultado + nueva cadena(re
}
in.close(); >
} catch (IOException ex) {
ex.printStackTrace();
resultado = "N/A"; >
return result.trim();
}
// Obtener la frecuencia mínima de CPU en KHZ
public cadena estática getMinCpuFreq() {
resultado de cadena = ""
cmd de ProcessBuilder
prueba {
cadena[] args; { "/system/bin/cat",
"/sys/devices/system/cpu/cpu0/ cpufreq/cpuinfo_min_freq" }
cmd = new ProcessBuilder(args);
Proceso proceso = cmd.getInputStream();
byte[] re = nuevo byte[24];
while (in.read(re) ! = -1) {
resultado = resultado + nueva cadena(re
}
in.close(); } catch (IOException ex) {
ex.printStackTrace();
resultado = "N/A"; return result.trim();
}
// Obtener la frecuencia actual de la CPU en tiempo real (unidad: KHZ)
public static String getCurCpuFreq() {
String resultado = "N/A"
prueba {
FileReader fr = new FileReader( ; p>
"/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
BufferedReader br = new BufferedReader(fr); Texto de cadena = br .readLine();
resultado = text.trim();
} catch (FileNotFoundException e) {
e.printStackTrace() ;
} captura (IOException e) {
e.printStackTrace()
;
}
devolver resultado
}
// Obtener el nombre de la CPU
cadena estática pública getCpuName () {
prueba {
FileReader fr = new FileReader("/proc/cpuinfo");
BufferedReader br = new BufferedReader(fr);
Texto de cadena = br.readLine();
Cadena[] matriz = text.split(":s+",
for (int); i = 0; i < array.length; i++) {
}
return matriz[1]
} catch (FileNotFoundException e) { p >
e.printStackTrace();
} captura (IOException e) {
e.printStackTrace()
}
return null
}
}
2. Memoria: /proc/meminfo
Copie el código de la siguiente manera:
p>public void getTotalMemory() {
String str1 = "/proc/meminfo"
String str2 = ""; p> intente {
FileReader fr = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader(fr, 8192
while ((str2 =); localBufferedReader.readLine( )) ! = null) {
Log.i(TAG, "---" + str2
}
} (IOException e) {
}
}
}
3. Tamaño de la memoria
Copia el código de la siguiente manera:
p>
public long[] getRomMemroy() {
long[] romInfo = new long[2]; Memoria rom total
romInfo[0] = getTotalInternalMemorySize();
/Memoria rom disponible
Ruta del archivo = Environment.GetDataDirectory()getDataDirectory(); /p>
StatFs stat = new StatFs (path.getPath());
long blockSize = stat.getBlockSize()
long availableBlocks = stat.getAvailableBlocks(); ; largo
totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize
}
4.sdCard size
Copia el código como sigue:
public long[] getSDCardMemory() {
long[] sdCardInfo=new long[2]
Estado de cadena = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
Archivo sdcardDir = Environment.getExternalStorageDirectory()
StatFs sf = new StatFs(sdcardDir) getPath());
long bSize = sf.getBlockSize();
long bCount = sf.getBlockCount(); getAvailableBlocks ();
sdCardInfo[0] = bSize * bCount;//tamaño total
sdCardInfo[1] = bSize * availBlocks;//tamaño disponible
}
return sdCardInfo
}
5. Nivel de batería
Copie el código de la siguiente manera:
privado BroadcastReceiver bateríaReceiver=new BroadcastReceiver(){
@Override
public void onReceive(Contexto contexto, Intención intención) {
int nivel = intención.getIntExtra (" nivel", 0);
// nivel más % es el nivel actual
}
RegisterReceiver( batteryReceiver , new IntentFilter(Intent.ACTION_BATTERY_ CHANGED));
6. Información de la versión del sistema
Copie el código de la siguiente manera:
public String[] getVersion( ){
String[] version={"null", "null" , "null", "null"};
String str1 = "/proc/version"; /p >
String str2;
String[] arrayOfString;
prueba {
FileReader localFileReader = new FileReader(str1);
BufferedReader localBufferedReader = nuevo BufferedReader(
localFileReader, 8192);
str2 = localBufferedReader. VERSION.RELEASE;// versión de firmware
versión[2] = Build.MODEL;//modelo
versión[3] = Build.DISPLAY;//versión del sistema
versión de retorno;
}
dirección 7.mac y hora de inicio
Copie el código de la siguiente manera:
public String[] getOtherInfo(){
String[] other={"null", "null"}
WifiManager wifiManager = (WifiManager) mContext.getSystemService(Contexto) . WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if(wifiInfo.getMacAddress()! =null){
otro[0] = wifiInfo.getMacAddress();
} else {
other[0] = "Falla"
}
other[; 1 ] = getTimes();
return otro
}
private String getTimes() {
long ut = SystemClock. transcurridoTiempoReal () / 1000;
if (ut == 0) {
ut = 1;
}
int m = (int) ((ut / 60) % 60);
int h = (int) ((ut / 3600));
return h + " " + mContext.getString(R.string.info_times_hour) + m + " "
+ mContext.getString(R.string.info_times_hour
}
);