go语言获取设备cpu golang获取硬件信息( 三 )


ci.mCPUType = CPUInfo.CPU_TYPE_UNKNOWN;
ci.mCPUFeature = CPUInfo.CPU_FEATURE_UNKNOWS;
ci.mCPUCount = 1;
ci.mBogoMips = 0;
if (cpuInfo.contains("ARMv5")) {
ci.mCPUType = CPUInfo.CPU_TYPE_ARMV5TE;
} else if (cpuInfo.contains("ARMv6")) {
ci.mCPUType = CPUInfo.CPU_TYPE_ARMV6;
} else if (cpuInfo.contains("ARMv7")) {
ci.mCPUType = CPUInfo.CPU_TYPE_ARMV7;
}
if (cpuInfo.contains("neon")) {
ci.mCPUFeature |= CPUInfo.CPU_FEATURE_NEON;
}
if (cpuInfo.contains("vfpv3")) {
ci.mCPUFeature |= CPUInfo.CPU_FEATURE_VFPV3;
}
if (cpuInfo.contains(" vfp")) {
ci.mCPUFeature |= CPUInfo.CPU_FEATURE_VFP;
}
String[] items = cpuInfo.split("\n");
for (String item : items) {
if (item.contains("CPU variant")) {
int index = item.indexOf(": ");
if (index = 0) {
String value = https://www.04ip.com/post/item.substring(index + 2);
try {
ci.mCPUCount = Integer.decode(value);
ci.mCPUCount = ci.mCPUCount == 0 ? 1 : ci.mCPUCount;
} catch (NumberFormatException e) {
ci.mCPUCount = 1;
}
}
} else if (item.contains("BogoMIPS")) {
int index = item.indexOf(": ");
if (index = 0) {
String value = https://www.04ip.com/post/item.substring(index + 2);
}
}
}
return ci;
}
/**
* 获取设备内存大小值
* @return 内存大小,单位MB
*/
public static long getTotalMemory() {
String str1 = "/proc/meminfo";
String str2;
String[] arrayOfString;
long initial_memory = 0;
try {
FileReader localFileReader = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192);
str2 = localBufferedReader.readLine();
if (str2 != null) {
arrayOfString = str2.split("\\s+");
initial_memory = Integer.valueOf(arrayOfString[1]).intValue()/1024;
}
localBufferedReader.close();
return initial_memory;
}
catch (IOException e)
{
return -1;
}
}
/**
* @hide
* @return
*/
public CPUInfo getCPUInfo() {
String strInfo = null;
try
{
byte[] bs = new byte[1024];
RandomAccessFile reader = new RandomAccessFile("/proc/cpuinfo", "r");
reader.read(bs);
String ret = new String(bs);
int index = ret.indexOf(0);
if(index != -1) {
strInfo = ret.substring(0, index);
} else {
strInfo = ret;
}
}
catch (IOException ex)
{
strInfo = "";
ex.printStackTrace();
}
CPUInfo info = parseCPUInfo(strInfo);
info.mCPUMaxFreq = getMaxCpuFreq();
return info;
}
/**
* 获取android CPU类型
*
* @return String CPU类型
*/
public static String getCpuModel(){
String cpu_model = "";
CPUInfo in = getCPUInfo();
if ((in.mCPUTypeCPUInfo.CPU_TYPE_ARMV5TE) == CPUInfo.CPU_TYPE_ARMV5TE)
cpu_model="armv5";
else if ((in.mCPUTypeCPUInfo.CPU_TYPE_ARMV6) == CPUInfo.CPU_TYPE_ARMV6)
cpu_model="armv6";
else if ((in.mCPUTypeCPUInfo.CPU_TYPE_ARMV7) == CPUInfo.CPU_TYPE_ARMV7)
cpu_model="armv7";
else
cpu_model="unknown";
return cpu_model;
}
/**
* 获取android CPU特性
*
* @return String CPU特性
*/
public static String getCpuFeature(){
String cpu_feature = "";
CPUInfo in = getCPUInfo();
if ((in.mCPUFeatureCPUInfo.CPU_FEATURE_NEON ) == CPUInfo.CPU_FEATURE_NEON)
cpu_feature="neon";
else if ((in.mCPUFeatureCPUInfo.CPU_FEATURE_VFP ) == CPUInfo.CPU_FEATURE_VFP)
cpu_feature="vfp";
else if ((in.mCPUFeatureCPUInfo.CPU_FEATURE_VFPV3 ) == CPUInfo.CPU_FEATURE_VFPV3)
cpu_feature="vfpv3";
else
cpu_feature="unknown";
return cpu_feature;
}

推荐阅读