反射方式获取内存RAM信息

        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();

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值