Red de conocimiento informático - Computadora portátil - Android obtiene información de la CPU del sistema, memoria, versión, consumo de energía, etc.

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(

"/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) {

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

}

);