StringBuffer sb = new StringBuffer(); Method _readProclines = null; try { Class procClass; procClass = Class.forName("android.os.Process"); Class parameterTypes[]= new Class[] {String.class, String[].class, long[].class }; _readProclines = procClass.getMethod("readProcLines", parameterTypes); Object arglist[] = new Object[3]; // final String[] mMemInfoFields = new String[] {"MemTotal:", // "MemFree:", "Buffers:", "Cached:"}; final String[] mMemInfoFields = new String[] {"MemTotal:" }; long[] mMemInfoSizes = new long[mMemInfoFields.length]; arglist[0] = new String("/proc/meminfo"); arglist[1] = mMemInfoFields; arglist[2] = mMemInfoSizes; if(_readProclines!=null){ _readProclines.invoke(null, arglist); for (int i=0; i<mMemInfoSizes.length; i++) { //sb.append( mMemInfoFields[i]+" : "+mMemInfoSizes[i]/1024); if(0==i){ String formattotal = formatSize(mMemInfoSizes[i]); float result= Float.parseFloat(formattotal.substring(0,3)); if((0.8<result) && (result<1.2)){ sb.append("01"); }else if((1.8<result) && (result<2.2)){ sb.append("02"); }else if((3.8<result) && (result<4.2)){ sb.append("04"); }else if((7.8<result) && (result<8.2)){ sb.append("08"); } } } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } return sb.toString();
反射方式获取内存RAM信息
最新推荐文章于 2024-12-31 01:53:01 发布