当前位置: 移动技术网 > IT编程>移动开发>Android > Android获取系统储存以及内存信息的方法(二)

Android获取系统储存以及内存信息的方法(二)

2019年07月24日  | 移动技术网IT编程  | 我要评论

巴蜀职业,无良妖皇,上海男科

android获取储存信息以及内存信息可以用adb命令查看。

adb查看系统内存信息以及储存信息:

命令:adb shell cat /proc/meminfo

这里写图片描述

代码:

 private static final string filename_proc_meminfo = "/proc/meminfo";
/**
 * 获取手机内存总大小
 * @return
 */
 public static string gettotalmemorysize() {
    try {
      filereader fr = new filereader(filename_proc_meminfo);
      bufferedreader br = new bufferedreader(fr, 2048);
//      string memoryline = br.readline();
      string submemoryline = "";
      string line = "";
      while ((line = br.readline()) != null)
      {
        if (line.contains("memtotal:")){
          submemoryline = line.substring(line.indexof("memtotal:"));
          break;
        }

      }
      br.close();
      matcher mer = pattern.compile("^[0-9]+$").matcher(submemoryline.replaceall("\\d+", ""));
      //如果为正整数就说明数据正确的,确保在double.parsedouble中不会异常
      if (mer.find()) {
        long memsize = integer.parseint(submemoryline.replaceall("\\d+", "")) ;
        double mem = (double.parsedouble(memsize + "")/1024)/1024;
        numberformat nf = new decimalformat( "0.0 ");
        mem = double.parsedouble(nf.format(mem));
        //log.e(log_tag,"=========mem================ " + mem);
        return string.valueof(mem);
      }
    } catch (ioexception e) {
      e.printstacktrace();
    }
    return "unavailable";
  }

  /**
   * 获取手机剩余内存大小
   * @return
   */
  public static string getfreememorysize() {
    try {
      filereader fr = new filereader(filename_proc_meminfo);
      bufferedreader br = new bufferedreader(fr, 2048);
//      string memoryline = br.readline();
      string submemoryline = "";
      string line = "";
      while ((line = br.readline()) != null)
      {
        if (line.contains("memfree:")){
          submemoryline = line.substring(line.indexof("memfree:"));
          break;
        }

      }
      br.close();
      matcher mer = pattern.compile("^[0-9]+$").matcher(submemoryline.replaceall("\\d+", ""));
      //如果为正整数就说明数据正确的,确保在double.parsedouble中不会异常
      if (mer.find()) {
        long memsize = integer.parseint(submemoryline.replaceall("\\d+", "")) ;
        double mem = (double.parsedouble(memsize + "")/1024)/1024;
        numberformat nf = new decimalformat( "0.0 ");
        mem = double.parsedouble(nf.format(mem));
        //log.e(log_tag,"=========mem================ " + mem);
        return string.valueof(mem);
      }
    } catch (ioexception e) {
      e.printstacktrace();
    }
    return "unavailable";
  }

adb 获取手机储存大小:

命令:adb shell cat /proc/partitions

这里写图片描述

代码:

private static final string filename_proc_emmcinfo = "/proc/partitions";
 /**
   * 获取手机储存大小
   * @return
   */
 public static string getemmcsize() {
    try {
      filereader fr = new filereader(filename_proc_emmcinfo);
      bufferedreader br = new bufferedreader(fr, 2048);
      string line = "";
      string emmcsize = "";
      while ((line = br.readline()) != null)
      {
        if (line.length() >7 && line.lastindexof(" ") > 0) {
          if (line.substring(line.lastindexof(" ") + 1 , line.length()).equals("mmcblk0"))
          {

            emmcsize = removeallspace(line);
            break;
          }
        }

      }
      br.close();
      if (emmcsize.length() >7 ){
        emmcsize = (string) emmcsize.subsequence(4, emmcsize.length()-7);

        matcher mer = pattern.compile("^[0-9]+$").matcher(emmcsize);
        //如果为正整数就说明数据正确的,确保在double.parsedouble中不会异常
        if (mer.find()) {
          double mem = (double.parsedouble(emmcsize)/1024)/1024;
          numberformat nf = new decimalformat( "0.0 ");
          mem = double.parsedouble(nf.format(mem));
          return string.valueof(mem);
        }
      }
      return "0";
    } catch (ioexception e) {
      e.printstacktrace();
    }
    return "unavailable";
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网