用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 ...
随机推荐
- 如何编译运行HanLP自然语言处理包
master分支 对于master分支,编译方法如下: git clone https://github.com/hankcs/HanLP.git mvn install -DskipTests · ...
- MySQL程序之mysql参数详解
MySQL程序之mysql参数详解 mysql 是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句 用法: mysql [OPTIONS] [database] 参数: 1.-? --hel ...
- openwrt挂载摄像头及视频保存
一.编译选项的选择: -> Utilities ->usbutils (这个里面包含lsusb的命令,是查看你的摄像头型号的) -> Kernel modules -> I2C ...
- DelphiXE5如何获取Android手机SIM卡串号[转]
手机号不是存在SIM卡上的,SIM卡只有一个串号.在运营商的服务器上有手机号和序号对应的一张表.所以你SIM卡办理遗失,运营商只要把新SIM卡的串号和你原来的手机号绑定即可. 获取手机号的唯一办法是收 ...
- chrome flash
chrome://settings/content/flash 在Chrome地址栏中输入:chrome://settings/content/flash,进入Flash设置,勾选允许网站运行flas ...
- nvm环境配置
安装nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash nvm insta ...
- elasticsearch 口水篇(9)Facet
FACET 1)Terms Facet { "query" : { "match_all" : { } }, "facets" : { &q ...
- if的各种真假判断
- PAT 乙级 1020 月饼 (25) C++版
1020. 月饼 (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 月饼是中国人在中秋佳节时吃的一种传统食 ...
- 服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)
Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能: 身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求. 审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生成 ...