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 + " "); } 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("==========================" + " "); 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 + " "); } 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 + " "); } 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("==========================" + " "); 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; } }