如何在Android设备中获得处理器速度和RAM

时间:2012-02-20 14:29:24

标签: android

有人可以帮我解决如何通过代码获取Android设备的处理器名称,速度和RAM。

2 个答案:

答案 0 :(得分:20)

您可以像我们通常在Linux中获得的那样获取处理器,RAM和其他硬件相关信息。 从终端我们可以在普通的Linux系统中发出这些命令。您需要 rooted device

$ cat /proc/cpuinfo 

同样,你可以在android代码中发出这些命令并获得结果。

public void getCpuInfo() {
    try {
        Process proc = Runtime.getRuntime().exec("cat /proc/cpuinfo");
        InputStream is = proc.getInputStream();
        TextView tv = (TextView)findViewById(R.id.tvcmd);
        tv.setText(getStringFromInputStream(is));
    } 
    catch (IOException e) {
        Log.e(TAG, "------ getCpuInfo " + e.getMessage());
    }
}

public void getMemoryInfo() {
    try {
        Process proc = Runtime.getRuntime().exec("cat /proc/meminfo");
        InputStream is = proc.getInputStream();
        TextView tv = (TextView)findViewById(R.id.tvcmd);
        tv.setText(getStringFromInputStream(is));
    } 
    catch (IOException e) {
        Log.e(TAG, "------ getMemoryInfo " + e.getMessage());
    }
}

private static String getStringFromInputStream(InputStream is) {
    StringBuilder sb = new StringBuilder();
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String line = null;

    try {
        while((line = br.readLine()) != null) {
            sb.append(line);
            sb.append("\n");
        }
    } 
    catch (IOException e) {
        Log.e(TAG, "------ getStringFromInputStream " + e.getMessage());
    }
    finally {
        if(br != null) {
            try {
                br.close();
            } 
            catch (IOException e) {
                Log.e(TAG, "------ getStringFromInputStream " + e.getMessage());
            }
        }
    }       

    return sb.toString();
}

答案 1 :(得分:4)

它只能在root设备上运行,或者你的应用程序作为系统应用程序运行。

对于想要的信息,你必须查看正在运行的内核,因为我知道这些信息 不能通过android系统本身获得。

要获取有关CPU的信息,您可以读取并解析此文件: 的/ proc内/ cpuinfo

要获取内存信息,您可以读取并解析此文件: 的/ proc /存储器