Android获取cpu和内存信息、网址的代码
16lz
2023-01-31
阅读更多
/** 获取用户硬件信息 */public static String getMobileInfo() {//StringBuffer sb = new StringBuffer();JSONObject mbInfo = new JSONObject();//通过反射获取用户硬件信息try {Field[] fields = Build.class.getDeclaredFields();for (Field field : fields) {// 暴力反射,获取私有信息field.setAccessible(true);String name = field.getName();String value = field.get(null).toString();//sb.append(name + "=" + value);//sb.append("\n");mbInfo.put(name, value);}} catch (Exception e) {e.printStackTrace();}//return sb.toString();return mbInfo.toString();}static public String getCpuString(){if(Build.CPU_ABI.equalsIgnoreCase("x86")){return "Intel";}String strInfo = "";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){ex.printStackTrace();}return strInfo;}static public String getCpuType(){String strInfo = getCpuString();String strType = null;if (strInfo.contains("ARMv5")) {strType = "armv5";} else if (strInfo.contains("ARMv6")) {strType = "armv6";} else if (strInfo.contains("ARMv7")) {strType = "armv7";} else if (strInfo.contains("Intel")){strType = "x86";}else{strType = "unknown";return strType;}if (strInfo.contains("neon")) {strType += "_neon";}else if (strInfo.contains("vfpv3")) {strType += "_vfpv3";}else if (strInfo.contains(" vfp")) {strType += "_vfp";}else{strType += "_none";}return strType;}/** * @hide * @return */public static 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;}private final static String kCpuInfoMaxFreqFilePath = "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq";private static int getMaxCpuFreq() {int result = 0;FileReader fr = null;BufferedReader br = null;try {fr = new FileReader(kCpuInfoMaxFreqFilePath);br = new BufferedReader(fr);String text = br.readLine();if (text != null) {result = Integer.parseInt(text.trim());}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (fr != null)try {fr.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if (br != null)try {br.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return result;} public static class CPUInfo{public CPUInfo(){}public static final int CPU_TYPE_UNKNOWN= 0x00000000;public static final int CPU_TYPE_ARMV5TE = 0x00000001;public static final int CPU_TYPE_ARMV6 = 0x00000010;public static final int CPU_TYPE_ARMV7= 0x00000100;public static final int CPU_FEATURE_UNKNOWS=0x00000000;public static final int CPU_FEATURE_VFP= 0x00000001;public static final int CPU_FEATURE_VFPV3= 0x00000010;public static final int CPU_FEATURE_NEON=0x00000100;public int mCPUType;public int mCPUCount;public int mCPUFeature;public double mBogoMips;public long mCPUMaxFreq;}/** * * @param cpuInfo * @return * @hide */private static CPUInfo parseCPUInfo(String cpuInfo) {if (cpuInfo == null || "".equals(cpuInfo)) {return null;}CPUInfo ci = new CPUInfo();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 = 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 = 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.mCPUType & CPUInfo.CPU_TYPE_ARMV5TE) == CPUInfo.CPU_TYPE_ARMV5TE)cpu_model="armv5";else if ((in.mCPUType & CPUInfo.CPU_TYPE_ARMV6) == CPUInfo.CPU_TYPE_ARMV6)cpu_model="armv6";else if ((in.mCPUType & CPUInfo.CPU_TYPE_ARMV7) == CPUInfo.CPU_TYPE_ARMV7)cpu_model="armv7";elsecpu_model="unknown";return cpu_model;}/** * 获取android CPU特性 * * @return String CPU特性 */public static String getCpuFeature(){ String cpu_feature = ""; CPUInfo in = getCPUInfo(); if ((in.mCPUFeature & CPUInfo.CPU_FEATURE_NEON ) == CPUInfo.CPU_FEATURE_NEON)cpu_feature="neon";else if ((in.mCPUFeature & CPUInfo.CPU_FEATURE_VFP ) == CPUInfo.CPU_FEATURE_VFP)cpu_feature="vfp";else if ((in.mCPUFeature & CPUInfo.CPU_FEATURE_VFPV3 ) == CPUInfo.CPU_FEATURE_VFPV3)cpu_feature="vfpv3";elsecpu_feature="unknown"; return cpu_feature;}/** * 获取ip地址 * * @param mContext Context * @return ip地址字符串 */public static String getIpAddress(Context mContext) {String ipAddress = null;try {for (Enumerationen = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {NetworkInterface intf = en.nextElement();for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress()) {ipAddress = inetAddress.getHostAddress().toString(); }}}} catch (SocketException ex) {return null;} if (DEBUG) { Log.d(TAG, "ip address:" + ipAddress); }return ipAddress;}
更多相关文章
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- 读取android手机流量信息
- Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
- android 获取唯一标识
- android拍照与读取相册
- Android(安卓)热点开关状态的判断和获取热点ssid
- Android软键盘适配问题
- AIR Native Extension的使用(Android)一 : 打包ane
- android之BitMap