Android获取系统储存以及内存信息的方法(二)
时间:2022-07-28
本文章向大家介绍Android获取系统储存以及内存信息的方法(二),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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";
}
以上就是本文的全部内容,希望对大家的学习有所帮助。
- JSP中文乱码的产生原因及解决方案
- 比较Swing中三种注册事件的方法
- Kafka单节点至集群的安装部署及注意事项
- JavaScript onchange 事件:表单文本域或选择域发生改变
- 利用反射比较两个对象字段值是否相等
- 更新Silverlight ctp到Silverlight beta 1.0
- JSON.stringify(), JSON.parse(), toJSON()方法使用
- compression功能测试
- 源码阅读再来一发:解读RGW中request的处理流程
- 绘制Crushmap分布图-Python
- RGW奇淫技巧-玩转system特权
- 源码走读rgw内置civetweb的参数初始化过程
- 重磅:Flume1-7结合kafka讲解
- 遍历删除List中的元素
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Laravel 队列使用的实现
- keras 两种训练模型方式详解fit和fit_generator(节省内存)
- Keras 中Leaky ReLU等高级激活函数的用法
- Python错误的处理方法
- python3的pip路径在哪
- MySQL 案例:init_connect 引发的 Lost connection
- PHP一个简单的无需刷新爬虫
- PHP实现函数内修改外部变量值的方法示例
- PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
- PHP命名空间简单用法示例
- PHP array_shift()用法实例分析
- PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
- 基于Python+QT的gui程序开发实现
- 使用tensorflow根据输入更改tensor shape
- 使用keras实现非线性回归(两种加激活函数的方式)