Search code examples
androidcpuprocessorinfo

Android Get Processor Model


I want to get Processor Model similar to DU Booster. CPU model contains ARM processor version and revision. For Example: ARMv7 Processor rev 3 (v7l)

I have tried this System.getProperty("os.arch") which returns only architecture

and

String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; 

to get CPU info. I am able to get the right information in some of the devices but not in all.

I tried this in Asus Fonepad 7 which doesn't return the property of the Processor(but returns processor(small p)

It returns like

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 53
model name  : Intel(R) Atom(TM) CPU Z2520  @ 1.20GHz
stepping    : 1
microcode   : 0x10e
cpu MHz     : 800.000
cache size  : 512 KB
physical id : 0
siblings    : 4

I want to get result like "ARMv7 Processor rev 3 (v7l)". Thanks in Advance..


Solution

  • You don't need to implement separated methods to work with differ processors types, just simply replace the model_name key to cpu_model when it needed while getting /proc/cpuinfo file:

        public static Map<String, String> getCPUInfo () throws IOException {
    
            BufferedReader br = new BufferedReader (new FileReader ("/proc/cpuinfo"));
    
            String str;
    
            Map<String, String> output = new HashMap<> ();
    
            while ((str = br.readLine ()) != null) {
    
                String[] data = str.split (":");
    
                if (data.length > 1) {
    
                    String key = data[0].trim ().replace (" ", "_");
                    if (key.equals ("model_name")) key = "cpu_model";
    
                    output.put (key, data[1].trim ());
    
                }
    
            }
    
            br.close ();
    
            return output;
    
        }