Android简易实战教程--第十二话《代码获取手机总运行内存的大小》
2016-08-03 17:48
591 查看
手机RAM存储,类似于电脑的内存。这一篇,对通过代码获取手机总内存大小做详细介绍。
首先,定义一个engine类,这个类功能就是获取进程信息,包括运行的程序个数,系统总内存,系统剩余总内存。本篇先完成获取总内存。
代码如下:
对于文件获取,首先通过inux指令,看那个文件有内存的详细信息
linux指令如下:
cd /proc
ls 进入该目录
ls -l查看详细信息
cat cupinfo 查看cpuinfo里面的详细信息
cat meminfo 查看meminfo内存详细信息
详细信息截图如下:
第一行位置,就是系统中总内存的大小。根据这个文件信息,可以获取到总内存大小了。方式如下:
这样返回的大小就是手机运行内存的大小了。单元测试得到数据:526073856
首先,定义一个engine类,这个类功能就是获取进程信息,包括运行的程序个数,系统总内存,系统剩余总内存。本篇先完成获取总内存。
代码如下:
public class TaskManagerEngine { //获取总内存大小 public static long getTotalMemorySize(Context context){ long size = 0; //获取ActivityManager管理,要获取【运行相关】的信息,与运行相关的信息有关 ActivityManager activityManager = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE); MemoryInfo outInfo = new MemoryInfo();//outInfo对象里面包含了内存相关的信息 activityManager.getMemoryInfo(outInfo);//把内存相关的信息传递到outInfo里面C++思想 size = outInfo.totalMem; //通过读取配置文件方式获取总内大小。文件目录:/proc/meminfo return size; } }其实如果是获取剩余内存;把size=outinfo.totalMem改为size=outinfo.avaliMem就可以了。而且不会报错。但是,但是上边的程序会报错,原因在于,只支持api16级别以上手机。显然这样对于低版本用户是不可行的。那么久另辟蹊径,另一种方式获取手机总内存大小——文件获取。该文件是proc目录
对于文件获取,首先通过inux指令,看那个文件有内存的详细信息
linux指令如下:
cd /proc
ls 进入该目录
ls -l查看详细信息
cat cupinfo 查看cpuinfo里面的详细信息
cat meminfo 查看meminfo内存详细信息
详细信息截图如下:
第一行位置,就是系统中总内存的大小。根据这个文件信息,可以获取到总内存大小了。方式如下:
public class TaskManagerEngine { //获取总内存大小 public static long getTotalMemorySize(Context context){ long size = 0; //通过读取配置文件方式获取总内大小。文件目录:/proc/meminfo File file = new File("/proc/meminfo"); try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file))); //根据命令行可以知道,系统总内存大小位于第一行 String totalMemarysizeStr = reader.readLine();//MemTotal: 513744 kB //要获取大小,对字符串截取 int startIndex = totalMemarysizeStr.indexOf(':'); int endIndex = totalMemarysizeStr.indexOf('k'); //截取 totalMemarysizeStr = totalMemarysizeStr.substring(startIndex + 1, endIndex).trim(); //转为long类型,得到数据单位是kb size = Long.parseLong(totalMemarysizeStr); //转为以byte为单位 size *= 1024; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return size; } }
这样返回的大小就是手机运行内存的大小了。单元测试得到数据:526073856
相关文章推荐
- Android简易实战教程--第十二话《代码获取手机总运行内存的大小》
- Android简易实战教程--第十二话《代码获取手机总运行内存的大小》
- Android简易实战教程--第十一话《获取手机所有应用信息Engine类详解》
- Android简易实战教程--第十一话《获取手机所有应用信息Engine类详解》
- android开发学习(二)——保存文件到手机内存和SD卡,文件访问权限,获取内存大小
- android 获取手机内存大小
- Android实战简易教程<四十一>(显示倒计时的Button-适用于获取验证码)
- Android实战简易教程<四十三>(Shell Script 运行Command)
- Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》
- android下获取手机空间大小 代码
- Android简易实战教程--第七话《在内存中存储用户名和密码》
- Android简易实战教程--第十话《模仿腾讯手机助手小火箭发射详解》
- android手机内存大小获取
- Android 漫游之路------将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- Android_获取手机上SD卡和内存中的可用空间的大小
- Android_StatFs获取手机内存空间大小_140928
- Android实战简易教程-第十二枪(ViewFlipper实现幻灯效果)
- android获取手机内存空间大小
- Android简易实战教程--第七话《在内存中存储用户名和密码》