前提:配置好环境jdk+sdk等等
执行代码
封装runtime方法,调用runtime方法即可执行adb命令,runtime(“adb 命令”)
public static void runtime(String adb) throws IOException {
Process p = Runtime.getRuntime().exec(adb);
//Process p = Runtime.getRuntime().exec("cmd.exe /c dir");
final InputStream is1 = p.getInputStream();
new Thread(new Runnable() {
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(is1));
try{
while(br.readLine() != null) ;
}
catch(Exception e) {
e.printStackTrace();
}
}
}).start(); // 启动单独的线程来清空p.getInputStream()的缓冲区
InputStream is2 = p.getErrorStream();
BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));
StringBuilder buf = new StringBuilder(); // 保存输出结果流
String line = null;
while((line = br2.readLine()) != null) buf.append(line); //
System.out.println("输出结果为:" + buf);
}
在测试时发现ecplise执行runtime执行adb命令会报adb server version (41) doesn’t match this client (40)
是因为c盘中有adb,可以用adb version 查看C盘中的adb版本,将自己配置的sdk中的adb版本,替换掉c盘中的adb版本即可