码迷,mamicode.com
首页 > 其他好文 > 详细

使用cmd

时间:2019-10-24 11:47:38      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:call   使用   adb   ash   break   split   process   one   shm   



public class DeviceInfo {
public static String execute(String cmd) {
System.out.println(cmd);

StringBuilder sb = new StringBuilder();
StringBuilder error = new StringBuilder();
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
BufferedReader errorReader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((line = errorReader.readLine()) != null) {
error.append(line);
error.append("\n");
}
} catch (Exception e) {
e.printStackTrace();
}
// String err = error.toString();
System.out.println(error.toString());

return sb.toString();
}



public static Map<String, String> getDevices() {
String t = execute("adb devices");
String[] ds = t.split("\n");
Map<String, String> r = new HashMap<String,String>();
for (int i = 1; i < ds.length; i++) {
ds[i] = ds[i].split(" |\t")[0];
r.put(execute(ADB.getPhoneInfoBase(ds[i])).replace("\n", ""), ds[i]);
}
return r;
}


public static String execute(String cmd, ResultCallback resultCallback) {

// System.out.println(cmd);

int count = 0;
StringBuffer sb = new StringBuffer();
StringBuffer error = new StringBuffer();
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;

while ((line = bufferedReader.readLine()) != null /*&& count < 5*/) {
//long start = System.currentTimeMillis();
//count++;

sb.append(line);
sb.append("\n");
resultCallback.receiveLine(line + "\n" );
// long end= System.currentTimeMillis();
// if (line.contains("Escape")) {
// break;
// }
// if(end-start>5*1000)
// {
// break;
// }

}

} catch (Exception e) {
e.printStackTrace();
}
// String err = error.toString();
System.out.println(error.toString());

return sb.toString();
}
}

使用cmd

标签:call   使用   adb   ash   break   split   process   one   shm   

原文地址:https://www.cnblogs.com/dongbo-2018/p/11731115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!