阅读更多
/** 获取用户硬件信息 */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 (Enumeration en = 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;} 

 

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. 读取android手机流量信息
  3. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  4. android 获取唯一标识
  5. android拍照与读取相册
  6. Android(安卓)热点开关状态的判断和获取热点ssid
  7. Android软键盘适配问题
  8. AIR Native Extension的使用(Android)一 : 打包ane
  9. android之BitMap

随机推荐

  1. Android开发中关于2个Xml合并问题的实例
  2. 在xml中写动画的实例详解
  3. 通过javascript xml xsl取值及数据修改第
  4. 分享如何订阅没有RSS输出的网站教程
  5. jscript和vbscript对XML元素属性进行操作
  6. 实例详解如何配置Web.xml
  7. 网卡多队列技术与RSS功能的详细介绍
  8. Facebook RSS能否替代Google Reader?
  9. android三种操作XML的方法总结
  10. My Batis 的XML 映射配置文件的实例详解