用Java实现adb命令的各种方式
package com.function; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; import com.sql.Tools_Sql;
/*
* adb 命令方法集合类
*/
public class Tools_AdbCommand {
/*
* 拍照实现方法
*/
public void taking_pictures() {
try {
Process process = Runtime.getRuntime().exec("cmd /c adb shell input keyevent 27");
Thread.sleep(3000);
process.destroy();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 对焦实现方法
*/
public void focusing() {
try {
Process process = Runtime.getRuntime().exec("cmd /c adb shell input keyevent 80");
Thread.sleep(2000);
process.destroy();
}catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
/*
* 删除手机照片文件方法
*/
public void deletecamerafile() {
try {
Process process = Runtime.getRuntime().exec("adb shell");
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
process.getOutputStream().write("cd /mnt/sdcard/DCIM/\r\n".getBytes());
process.getOutputStream().write("rm -r Camera/ \r\n".getBytes());
process.getOutputStream().flush(); //刷新流
Thread.sleep(2000);
input.close();
process.destroy();
System.out.println("手机中的照片清除完毕...");
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
/*
* pull照片的 方法
*/
public void pullphoto(String path,String Storage_place) {
get_photo_name(Storage_place);
Process process2 ;
try {
if(Storage_place == "contrast_photo") {
process2 = Runtime.getRuntime().exec("cmd /c adb pull /mnt/sdcard/DCIM/Camera/"+new Tools_Sql().getcontrast_photo_name()+" "+path);
Thread.sleep(3000);
process2.destroy();
}else if (Storage_place=="test_photo") {
process2 = Runtime.getRuntime().exec("cmd /c adb pull /mnt/sdcard/DCIM/Camera/"+new Tools_Sql().getTest_photo_name()+" "+path);
Thread.sleep(3000);
process2.destroy();
}else if (Storage_place == "error_photo") {
process2 = Runtime.getRuntime().exec("cmd /c adb pull /mnt/sdcard/DCIM/Camera/"+new Tools_Sql().getTest_photo_name()+" "+path);
Thread.sleep(3000);
process2.destroy(); }
System.out.println("照片从手机上下载完成...."); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
/*
* 得到当前测试照片名称的方法
*/
public void get_photo_name(String Storage_place) {
try {
Process process = Runtime.getRuntime().exec("adb shell");
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
process.getOutputStream().write("cd /mnt/sdcard/DCIM/Camera/\r\n".getBytes());
process.getOutputStream().write("ls\r\n".getBytes());
process.getOutputStream().flush();
String s = input.readLine();
if(Storage_place == "contrast_photo" ) {
new Tools_Sql().setcontrast_photo_name(s);
System.out.println("照片名称是:"+new Tools_Sql().getcontrast_photo_name());
}else if (Storage_place == "test_photo") {
new Tools_Sql().setTest_photo_name(s);
System.out.println("照片名称是:"+new Tools_Sql().getTest_photo_name());
}else if (Storage_place == "error_photo") {
new Tools_Sql().setTest_photo_name(s);
System.out.println("照片名称是:"+new Tools_Sql().getTest_photo_name()); } input.close();
process.destroy(); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
用Java实现adb命令的各种方式的更多相关文章
- Java调用Linux命令执行
调用方式 Java调用linux命令执行的方式有两种,一种是直接调用linux命令,一种是将linux命令写到.sh脚本中,然后调用脚本执行. 详细说明 直接调用:使用java中lang包下面的Run ...
- 『与善仁』Appium基础 — 4、常用ADB命令(一)
目录 1.启动和关闭ADB服务 2.查看ADB版本 3.指定adb server的网络端口 4.查询已连接设备/模拟器 5.获取安卓系统版本 6.为命令指定目标设备 7.发送文件到手机 8.从手机拉取 ...
- adb命令具体解释(二)——手机缺失sqlite3时操作数据库的多种解决方式
在android应用开发无处不在SQLite数据库的身影.那么在开发中怎么使用adb命令操作数据库的功能呢? 以下我们将完整的介绍与数据库操作相关的命令集及当手机缺少sqlite3的时候的多种解决方式 ...
- Android的常用adb命令
第一部分:1. ubuntu下配置环境anroid变量:在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#setandroid environment2. 运行E ...
- Android adb 命令使用总结
adb原理 参考文档 How ADB works http://www.cnblogs.com/ifantastic/p/5186362.html http://blog.csdn.ne ...
- Android 常用 adb 命令总结
Android 常用 adb 命令总结 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命 ...
- Android adb 命令图解
做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把 其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的 ...
- 【转】Android 常用 adb 命令总结
原文地址:http://testerhome.com/topics/2565 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Andr ...
- Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令
Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...
随机推荐
- Spring Cloud(Dalston.SR5)--Hystrix 断路器-缓存
在 Spring Cloud 中可以使用注解的方式来支持 Hystrix 的缓存,缓存与合并请求功能需要先初始化请求上下文才能实现,因此,必须实现 javax.servlet.Filter 用于创建和 ...
- mybatis 使用oracle merge into 语句踩坑实录
由于需求涉及oracle的clob类型字段,在mybatis的mapper xml文件中编写merge into语句时总是失败. 附上错误代码 <insert id="mergeInt ...
- spring与activemq(三种消息监听方式)
1.3 消息监听器MessageListener 在Spring整合JMS的应用中我们在定义消息监听器的时候一共可以定义三种类型的消息监听器,分别是MessageListener.Sessio ...
- WyBox用usb口驱动4G模块EC20
按照: http://wiki.openwrt.org/doc/howtobuild/wireless-router-with-a-3g-dongle 然后: 进入linux-3.10.49/driv ...
- js for dwg viewer in B/S
https://github.com/autodesk-forge/ https://sharecad.org/zh/DWGOnlinePlugin http://3d-viewers.com/lic ...
- ionic popup 做法及样式修改
ionic popup的做法很简单,一共有三种:show.confirm和alert,官网上讲得很详细. 一.confirm: js:var confirmPopup = $ionicPopup.co ...
- C# DataAdapter.Update() 无法更新数据表中删除的数据行
用DataAdapter.Update() 方法更新删除了部分DataRow 的 DataTable .但是数据库中的数据没有随着更新而变化. 原因:DataTable 删除 DataRow 时,使用 ...
- 跟未名学Office - PPT操作:高效
第二章. PPT操作:高效... 3 第一节 操作视图... 3 第二节 Word草稿... 4 第三节 幻灯片母版... 5 第四节 幻灯片页... 7 第五节 幻灯片排版... 8 第六节 模板. ...
- 【linux】常用命令-端口
端口操作 手动更改配置文件开放端口 vim /etc/sysconfig/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 81 ...
- Wireshark抓包工具--TCP数据包seq ack等解读
1.Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节 2.在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位 3.TCP数据包中,seq表示这个包 ...