android性能1-内存、CPU获取
来源:互联网 发布:淘宝商品链接提取 编辑:程序博客网 时间:2024/05/18 20:05
内存
通过读取文件”/proc/meminfo”的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo)方法可以获取当前的可用Memory量。
获取总内存,剩余内存,pid内存
public long getTotalMemory() { String memInfoPath = "/proc/meminfo"; String readTemp = ""; String memTotal = ""; long memory = 0; try { FileReader fr = new FileReader(memInfoPath); BufferedReader localBufferedReader = new BufferedReader(fr, 8192); while ((readTemp = localBufferedReader.readLine()) != null) { if (readTemp.contains("MemTotal")) { String[] total = readTemp.split(":"); memTotal = total[1].trim(); } } localBufferedReader.close(); String[] memKb = memTotal.split(" "); memTotal = memKb[0].trim(); Log.d(LOG_TAG, "memTotal: " + memTotal); memory = Long.parseLong(memTotal); } catch (IOException e) { Log.e(LOG_TAG, "IOException: " + e.getMessage()); } return memory; }public long getFreeMemorySize(Context context) { ActivityManager.MemoryInfo outInfo = new ActivityManager.MemoryInfo(); ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); am.getMemoryInfo(outInfo); long avaliMem = outInfo.availMem; return avaliMem / 1024; }public int getPidMemorySize(int pid, Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); int[] myMempid = new int[] { pid }; Debug.MemoryInfo[] memoryInfo = am.getProcessMemoryInfo(myMempid); memoryInfo[0].getTotalSharedDirty(); int memSize = memoryInfo[0].getTotalPss(); return memSize;}
CPU
同样的,通过通过读取文件”/proc/cpuinfo”和”/proc/pid/stat”的信息能够获取手机Cpu的总量,pid应用占用率
获取总cpu和pid应用cpu
public void readCpu(int pid) { String processPid = Integer.toString(pid); String cpuStatPath = "/proc/" + processPid + "/stat"; try { // monitor cpu stat of certain process RandomAccessFile processCpuInfo = new RandomAccessFile(cpuStatPath , "r"); String line = ""; StringBuffer stringBuffer = new StringBuffer(); stringBuffer.setLength(0); while ((line = processCpuInfo.readLine()) != null) { stringBuffer.append(line + "\n"); } String[] tok = stringBuffer.toString().split(" "); processCpu = Long.parseLong(tok[13]) + Long.parseLong(tok[14]); processCpuInfo.close(); } catch (FileNotFoundException e) { Log.w(LOG_TAG, "FileNotFoundException: " + e.getMessage()); } catch (IOException e) { e.printStackTrace(); } try { // monitor total and idle cpu stat of certain process RandomAccessFile cpuInfo = new RandomAccessFile("/proc/cpuinfo", "r"); String line = ""; while ((null != (line = cpuInfo.readLine())) && line.startsWith("cpu")) { String[] toks = line.split("\\s+"); idleCpu.add(Long.parseLong(toks[4])); totalCpu.add(Long.parseLong(toks[1]) + Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[4]) + Long.parseLong(toks[6]) + Long.parseLong(toks[5]) + Long.parseLong(toks[7])); } cpuInfo.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}
0 0
- android性能1-内存、CPU获取
- Android 获取手机内存,cpu使用信息
- Android应用性能测试(CPU跟内存的性能)
- 获取linux服务器性能CPU、内存、硬盘等使用率 PHP
- 获取linux服务器性能CPU、内存、硬盘等使用率 PHP
- 获取linux服务器性能CPU、内存、硬盘等使用率 PHP
- [原创] android应用性能测试之CPU和内存占用
- android平台应用性能测试之CPU和内存占用
- android应用性能测试之CPU和内存占用
- Android性能测试:CPU内存监控工具APT
- Android应用性能测试之CPU和内存占用
- Android应用性能测试之cpu和内存占用
- android内存性能数据获取--api篇
- Android获取系统cpu信息,内存,版本,电量等信息
- Android获取系统cpu信息,内存,版本,电量等信息
- 获取android系统信息 电量 cpu sd卡 内存 rom
- Android获取系统cpu信息,内存,版本,电量相关信息
- Android获取系统cpu信息,内存,版本,电量等信息
- 自动驾驶背后的故事
- 本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
- 关于iTween 插件的运动篇
- linux下自动备份mysql数据库的脚本
- 对于vs中生成的sdk程序在其他电脑上无法运行的的问题
- android性能1-内存、CPU获取
- 修复Odoo 8日期和时间的乱码
- ASTM协议中文传输的解决
- RMI
- Markdown工具
- Swift版身份证号码校验
- 理解依赖注入(IOC)和学习Unity
- 伪分布式安装hadoop
- 第一个 Python 程序