Android自动化测试-自动获取cpu和内存信息
CpuInfo.java
package com.dtest; import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.InputStreamReader; class CpuInfo{
public static String getcpu(String packageName) throws Exception{
String str = null; try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("adb shell dumpsys cpuinfo | grep " + packageName); try{
//如果执行时非正常终止,则打印进程退出的返回值,waitFor()=0 为正常终止.
//waitFor()方法将导致当前的线程等待.如果必要的话.直到由该Process对象表示的进程已经终止.此方法将立即返回,如果子进程已经终止.
//如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出.
if(proc.waitFor() != 0){
System.err.println("exit value = " + proc.exitValue());
} //创建一个BufferedReader对象,且里边装的内容为执行proc返回的值(将proc的返回值作为输入流)
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream())); //创建一个空StringBuffer对象,用来装输出内容
StringBuffer sr = new StringBuffer();
String line = null; //逐行读取返回输入流内容并添加到stringbuffer对象中,每次添加都进行换行.
while((line = br.readLine()) != null){
sr.append(line + "\n");
} String str1 = sr.toString();
System.out.println(str1);
/*
String str2 = str1.substring(str1.indexOf(packageName),str1.indexOf(packageName) + 28);
str = str2.substring(18,23);*/ FileWriter fw = new FileWriter("d:\\cpuinfo.txt",true);
fw.flush();
fw.write(str1);
//fw.write("==========================" + "\n");
fw.close(); }catch(InterruptedException e){
System.out.println(e);
}finally{
try{
proc.destroy();
}catch(Exception e2){
//System.out.println(e2);
}
}
} catch (Exception StringIndexOutOfBoundsExcepiton) {
// TODO Auto-generated catch block
System.out.println("请检查设备是否连接");
} return str;
}
} /*
public static double Cpu(String packageName) throws IOException{ double Cpu = 0; try{
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("adb shell top -n 5 | grep " + packageName);
try{
//如果执行时非正常终止,则打印进程退出的返回值,waitFor()=0 为正常终止.
//waitFor()方法将导致当前的线程等待.如果必要的话.直到由该Process对象表示的进程已经终止.此方法将立即返回,如果子进程已经终止.
//如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出.
if(proc.waitFor() != 0){
System.err.println("exit value = " + proc.exitValue());
} //创建一个BufferedReader对象,且里边装的内容为执行proc返回的值(将proc的返回值作为输入流)
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream())); //创建一个空StringBuffer对象,用来装输出内容
StringBuffer stringBuffer = new StringBuffer(); String line = null;
//逐行读取返回输入流内容并添加到stringbuffer对象中,每次添加都进行换行.
while((line = br.readLine()) != null){
stringBuffer.append(line + "\n");
} String str1 = stringBuffer.toString();
System.out.println(str1); //BufferedReader reader = new BufferedReader(new FileReader("d:\\a.csv"));
FileWriter fw = new FileWriter("d:\\cpuinfo.text",true);
fw.flush();
fw.write(str1);
fw.close(); String str3 = str1.substring(str1.indexOf(packageName)-43,str1.indexOf(packageName)); String cpu = str3.substring(0,4);
cpu =cpu.trim();
Cpu = Double.parseDouble(cpu); }catch(InterruptedException e){
System.err.println(e);
}finally{
try{
proc.destroy();
}catch(Exception e2){
//System.out.println("test");
}
}
}catch(Exception StringIndexOutOfBoundsExcepiton){
//System.out.println("请检查设备是否连接");
}
return Cpu;
}
*/
MemInfo.java
package com.dtest; import java.io.*;
import java.lang.StringBuffer ; class MemInfo{
public static String getMemory(String packageName) throws IOException, InterruptedException{
String str = null; try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("adb shell dumpsys meminfo | grep " + packageName); try{
if(proc.waitFor() != 0){
System.err.println("exit value = " + proc.exitValue());
}
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream())); StringBuffer sf = new StringBuffer(); String line = null;
while((line = br.readLine()) != null){
sf.append(line + "\n");
} String str1 = sf.toString();
System.out.println(str1);
/*
String str2 = str1.substring(str1.indexOf("Objects")-60,str1.indexOf("Objects"));
str = str2.substring(0,10);
str.trim();*/ FileWriter fw = new FileWriter("d:\\meminfo.txt",true);
fw.flush();
fw.write(str1);
//fw.write("==========================" + "\n");
fw.close(); }catch(InterruptedException e){
System.out.println(e);
}finally{
try{
proc.destroy();
}catch(Exception e2){
System.out.println(e2);
}
}
} catch (Exception StringIndexOutOfBoundsExcepiton) {
// TODO Auto-generated catch block
System.out.println("请检查设备是否连接");
} return str;
}
}
Android自动化测试-自动获取cpu和内存信息的更多相关文章
- Android获取cpu和内存信息、网址的代码
android获取手机cpu并判断是单核还是多核 /** * Gets the number of cores available in this device, across all proce ...
- 使用python获取CPU和内存信息的思路与实现(linux系统)
linux里一切皆为文件,在linux/unix的根文件夹下,有个/proc文件夹,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc&qu ...
- 转载:Android自动化测试- 自动获取短信验证码
前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android ...
- 方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息
CPU使用率: InputStream is = null; InputStreamReader isr = null; BufferedReader brStat = null; StringTok ...
- Android应用性能测试之CPU和内存占用
最近发现自己学的很多东西没有做好积淀的工作,也萌生了写一些东西的念头.本人也没有写博客的习惯,下边就写一下手机端的性能测试. 最近公司,要我们从事对竞品的性能测试,我负责CPU和内存的性能测试,下面就 ...
- iOS开发 - 在状态栏显示FPS,CPU和内存信息
原理 FPS的计算 CoreAnimation有一个很好用的类CADisplayLink,这个类会在每一帧绘制之前调用,并且可以获取时间戳.于是,我们只要统计出,在1s内的帧数即可. - (void) ...
- ubuntu系统中查看本机cpu和内存信息的命令和用法
https://zhidao.baidu.com/question/192966322.html 写出ubuntu linux系统中查看本机cpu和内存信息的命令和用法,以及如何解读这些命令 ubun ...
- Linux下使用java获取cpu、内存使用率
原文地址:http://www.voidcn.com/article/p-yehrvmep-uo.html 思路如下:Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类 ...
- busybox devmem 直接获取、修改内存信息
/********************************************************************** * busybox devmem 直接获取.修改内存信息 ...
随机推荐
- Python Day9
Paramiko模块 paramiko模块基于SSH用于连接远程服务器并执行相关操作 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHCl ...
- 同一网站中HTML相对路径引用
../表示目录的上一级 如:一个网站文件夹text里有HTML,JS,CSS....文件夹,HTML文件夹有个text.html, JS文件夹有个text.js, CSS文件夹中有个text.css. ...
- (转)为什么所有浏览器的userAgent都带Mozilla
转自:http://www.eamonning.com/blog/view/289 以下是全文 最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windo ...
- HDFS中JAVA API的使用
HDFS中JAVA API的使用 HDFS是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件.删除文件.读取文件内容等操作.下面记录一下使用JAVA API对HDFS中的 ...
- 界面通信之block传值
block传值有两种方式 ⽅式⼀: 使⽤block属性实现回调传值 ⽅式⼆: 在⽅法中定义block实现回调传值 方式一比较便于理解而且常用,下面介绍方式一是如何传值的 使用block属性传值和代理传 ...
- 10 件有关 JavaScript 让人费解的事情
JavaScript 可算是世界上最流行的编程语言,它曾被 Web 开发设计师贴上噩梦的标签,虽然真正的噩梦其实是 DOM API,这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言, ...
- 使用count结合nvl函数时碰到的问题
count()函数功能:统计表中中某个字段或所有记录个数,字段值为null的不做统计. 手册中解释: COUNT returns the number of rows returned by the ...
- PHP realpath() 函数
定义和用法 realpath() 函数返回绝对路径. 该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名. 若失败,则返回 false.比如说文件不存在的话 ...
- 聊聊Azure的安全性
本来没打算写这篇博文,毕竟感觉太理论化,不像做技术的人应该写的东西,但是作为一名售前,发现很多不了解Azure的客户,上来的第一个问题竟然就是Azure如何保证客户数据的安全性,我清楚记得我第一次被问 ...
- Asp.Net Core--自定义基于策略的授权
翻译如下: 在封面下,角色授权和声明授权使用需求,需求的处理程序和预配置的策略. 这些构建块允许您在代码中表示授权评估,从而允许更丰富,可重用和容易测试的授权结构. 授权策略由一个或多个需求组成,并在 ...