用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 ...
随机推荐
- 【转】类似py2exe软件真的能保护python源码吗
类似py2exe软件真的能保护python源码吗 背景 最近写了个工具用于对项目中C/C++文件的字符串常量进行自动化加密处理,用python写的,工具效果不错,所以打算在公司内部推广.为了防止代码泄 ...
- sql日期操作
日期格式化函数 ), ): :57AM ), ): ), ): ), ): ), ): ), ): ), ): ), ): , ), ): :: ), ): :::827AM ), ): ), ): ...
- 阅读<<HDMI 1.4/2.0 Transmitter Subsystem V2.0>>笔记
阅读<<HDMI 1.4/2.0 Transmitter Subsystem V2.0>>笔记 1.Subsystem Block Diagram 2.HDMI TX Subs ...
- PHP代码实现3 [函数角度]
内部函数 标准函数的实现存放在ext/standard扩展目录中. php函数种类 Zend engine中的function的存在形式 123456 struct _zend_execute_dat ...
- 使用R语言-为矩阵(表格)的行列命名
转自:http://www.dataguru.cn/article-2217-1.html R语言中经常进行矩阵(表格)数据的处理,在纷繁复杂的数据中,为其行列定义一个名字变得尤为重要.在处理巨量数据 ...
- 【Darwin学习笔记】之获取系统处理器数量的方法
阅读Darwin源码的时候看到这个方法,感觉挺有用处,且考虑了多种平台下的实现方式,直接贴代码,以后说不定会用到~ 单一种平台下的实现方法可能很容易,但是把这些个系统都收集在一起,在一个函数中实现还是 ...
- 服务链路追踪(Spring Cloud Sleuth)
sleuth:英 [slu:θ] 美 [sluθ] n.足迹,警犬,侦探vi.做侦探 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元.由于服务单元数量众多,业务的 ...
- 解析Javascript事件冒泡机制(转) 本文转自:http://blog.csdn.net/luanlouis/article/details/23927347
本文转自:http://blog.csdn.net/luanlouis/article/details/23927347 1. 事件 在浏览器客户端应用平台,基本生都是以事件驱动的,即某个事件发生,然 ...
- 学习笔记之C / C++
面试总结之C/C++ - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5558919.html 学习笔记之C++ How to Program(p ...
- 学习笔记之WinSCP
WinSCP :: Official Site :: Free SFTP and FTP client for Windows https://winscp.net/eng/index.php Win ...