adb 最大连接_手机触屏失效的抢救办法,以及如何利用adb实现PC与手机交互

7568347fc86c3c9758c5ffa04a1dc68a.png手机进水或者摔坏屏幕导致触屏失效的时候,一般情况下,要么选择换屏,要么选择把手机扔掉。但其实如果有一根OTG线,手机中的资料还可以安全备份出来,或者还可以再利用起来,发挥一下余热做点别的事。

225c3124702d0b0142bfb3aed8976d92.png

像上图一样,鼠标接上以后,就可以开始操作手机了。下面介绍一下几个常见的需求如何完成:数据备份、跑一些挂机的任务(本文所介绍的所有操作都是我曾经用过的,保证确实可行的方案)。

1. 数据备份

备份数据可以有多种方式实现目的:

  • 通过文件浏览器(比如es)挂载局域网中的共享目录,把要备份的数据直接拷到共享目录,全程只需要鼠标点点就行。这是导数据的最佳方式,其它方式需要满足各式各样的奇葩条件,当然如果正好能满足的话,按自己喜好选择即可。

2ffc588d2ad3a59eb0f35be8bf205404.png

  • 通过USB线连到手机,打开手机的文件传输后,直接从电脑中备份;

这个操作看起来很简单,但是存在一个致命的问题,接口不够:手机连电脑就连不了鼠标,连鼠标就连不了电脑,当手机接上电脑的时候,没有鼠标可用。解决这个问题的办法有两种,让出接口或者扩展更多的接口:

    • 蓝牙鼠标:先使用USB鼠标连手机,打开蓝牙并和蓝牙鼠标配对,一旦配对成功,USB鼠标就可以拔掉,空出来的接口就可以连电脑了。

    • USB HUB:OTG线的另一端,不直接连手机,而是连接一个usb hub,这样扩展以后,手机可以同时连接多个USB设备。

    • 正如之前所说,这两种方式都需要准备额外的东西,蓝牙鼠标和usb hub并不是每个人手上都有,所以这个方案只能用在凑巧手里有这些东西的场合。

  • 支持批量传输的第三方软件(比如各种云盘);

  • 蓝牙传输、QQ、微信文件传输也都是不错的选择,但是只适合文件较少的情况(或者不支持目录传输,或者速度过慢)。

2. 操控手机(简略介绍常见adb操作)

这个功能主要用在特殊场合,需要和安卓开发套件中的adb程序结合使用。比如有一些软件不想在自己主力手机上运行(不点名是哪些软件了,懂的都懂),完全可以把这些软件全放到闲置手机上运行。因为核心的功能都在adb命令上,所以可以借助批处理、shell、开发手段来调用adb命令,通过各种adb参数实现所需要的功能:
  • adb devices,查看当前电脑通过adb连了哪些手机。

e63df1614f2e3120715aa078adbc8cf7.png

  • adb shell ,在手机上shell环境执行命令(-s 用于指定adb操作的对象是哪部手机,如果电脑上只有一部手机,-s 参数可以省略)。

6a7401eabbdb10f1742127e6b9d33ba6.png

  • adb pull  ,从手机上复制文件或目录(这个功能也可以用于手机数据备份),省略第二个参数表示不做重命名操作。

8febf79837f18a4e3cdceba793c1dbeb.png

  • adb shell screencap -p <filename>,截屏并保存到指定位置(截完屏,再用pull命令取回电脑,就可以实现在PC上查看手机画面的功能)

283795dd9469d3b4bc609578c5d68952.png

  • adb shell input keyevent ,向手机发送指定id的按键信息,常见的按键id如下

    • 3    HOME键

    • 4    返回键

    • 19 ~ 22    依次是方向键上、下、左、右

    • 24 ~ 25    分别是音量+和音量-

    • 26    电源键

    • 82    菜单键

  • adb shell input tap x y,向手机屏幕的坐标(x, y)处发送点击命令,这个命令用于模拟人工点击。

2.0 在PC上安装安卓手机驱动,有了驱动电脑才能认出手机;

ce45ea309ae14cfca516347cc4d67f31.png

2.1 打开手机的DEBUG调试(不同机型位置也不一样,一般在“开发人员选项”下);

2.2.a 用USB线连上电脑,但还是会遇到手机连电脑拷数据的时候碰到的那个两难问题:连上电脑,手机会询问允许这台电脑调试手机,所以,要么使用USB HUB,要么直接使用蓝牙鼠标,要么参考2.2.b小节使用网络调试;

eedb1511b29fb8d7367937d596547438.png

2.2.b 如果手机已经ROOT过,可以在终端里运行命令打开网络调试,这样PC上的adb就可以使用指定的IP和端口来连接手机进行网络调试,而无需占用USB接口(网络调试要求手机ROOT权限);

# 手机上运行setprop service.adb.tcp.port 5555stop adbdstart adbd# PC上运行adb tcpip 5555adb connect 192.168.2.70

2.3 控制手机:

需要执行一整套动作的时候,可直接将前文提到的命令组合起来使用。例如希望获取手机上展现的内容:首先使用使用adb shell screencap -p 截图,然后使用adb pull命令把这个截图文件拉到电脑。无论什么任务,都需要事先过一遍流程,从点击应用图标开始,到后面的每一步界面上,点击屏幕何处,输入什么内容,直到任务完成。后面就按这个流程,一步一步操作手机,如果需要获取每一步的反馈,可以在每一步操作之前抓屏并取回截图文件:
  • 切到初始界面(强制以某一个界面作为起点,比如主屏幕),如果不做这一步,后面的点击动作将没有定位依据;

  • 然后按梳理好的流程依次点击屏幕指定位置,比如打开某个应用,点击某个应用的某个按钮(adb无法辩认何为按钮,点击按钮操作其实是人为指定一个坐标进行点击,这个坐标正好落于按钮区域之内而已);

  • 如果有需要输入内容的地方,点击输入区域,用adb shell input keyevent命令填写内容;

  • 需要格外注意的是,每一步之间需要留够足够的时间间隔,因为手机在响应每一步动作时,屏幕显示相应的内容都需要耗费一定的时间,如果不留够操作间隙,后一步操作会落在旧的窗口里,中断掉整个操作流程。

(这段就不放图了)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

proxy跨域不生效_前端开发:深入使用proxy代理解决跨域问题

在前端领域里面&#xff0c;跨域指的是浏览器允许向服务器发送跨域请求&#xff0c;进而克服Ajax只能同源使用的局限性限制。同源策略是一种约定&#xff0c;而且是浏览器中最基本也是最核心的安全功能&#xff0c;若缺少了该策略&#xff0c;浏览器非常容易被***&#xff1b;同…

java 静态缓存示例_Java 9 JShell示例:集合静态工厂方法

java 静态缓存示例这篇文章继续从My My Java 9 Features博客文章中探索Java9功能。 在这里&#xff0c;我们在List&#xff0c;Set和Map接口中试验Java9 Collections静态工厂方法。 集合静态工厂方法 Java9使用其新的静态工厂方法使创建不可变列表变得更加容易 有12种Set.of和…

mysql在计算机管理中的路径怎么修改_称重软件中的数据修改怎么知晓?

称重软件称重软件应客户需求&#xff0c;数据允许修改&#xff0c;但不允许删除只能作废。如果数据已修改&#xff0c;该如何知晓该数据是修改过的呢&#xff0c;这就用到了标记。用户修改数据时为保证数据的可追溯性&#xff0c;同样在数据安全方面也有相应的要求&#xff0c;…

pip安装mysql模块_使用pip安装mysql模块for python

我正在尝试使用pip安装mysql模块for python&#xff0c;但遇到了一个错误&#xff1a;mysqlclient.lib(typelib.obj) : error LNK2001: unresolved external symbol __iob_funcmysqlclient.lib(viosslfactories.obj) : error LNK2001: unresolved external symbol __iob_funcmy…

Linux 命令之 apt-get -- APT 软件包管理工具

文章目录 一、命令介绍二、语法格式三、相关文件及目录四、常用命令(一)下载、安装、升级和删除软件包(二)查询和检验软件包(三)执行其它功能五、常用选项(一)安装、升级和删除软件包(二)查询和检验软件包(三)执行其它功能六、参考示例(一)下载、安装、升级和删除…

spring health_为什么Spring的Health会再次向下,向下,向上,向上,向上和向下?...

spring health为什么 我们新JavaScript客户端应用程序会定期调用Grails后端的/health端点&#xff0c;以确定离线状态。 事情开始变得“​​有趣”。 我们免费获得该端点&#xff0c;因为Grails基于Spring Boot&#xff0c;而Spring Boot带有一个名为Spring Boot Actuator的子…

使用JDBC连接数据库(MySQL)的源代码

文章目录JDBC 访问数据库的步骤使用 JDBC 访问数据库的演示代码使用 PreparedStatement 对象查询插入更新删除使用 Statement 对象查询删除JDBC 访问数据库的步骤 将 jdbc 驱劢程序相关的 jar 包 copy 到 WEB-INF/lib 下在 servlet 代码当中&#xff0c;使用 jdbc 访问数据库&…

popupwindow 不抢夺焦点_央视专访“上个厕所就要3000块”的亲历者, 被“坑”的不愉快经历...

资讯 聚焦 活动 宣传 推广 品牌 热文 找小编合作加个人微信2871001801百度百科&#xff1a;宁河于雍正九年(1731年)从宝坻县分出,据《河北省县名考原》称:“蓟运河纵贯县境,时多水患,故县以宁河名”!当然还有另外别的解释!民国三年(1914年)属直隶省津海道,民国十七年(1928年…

gitlab10.x迁移_1.x到2.x的迁移:可观察与可观察:RxJava FAQ

gitlab10.x迁移标题不是错误。 rx.Observable 1.x的io.reactivex.Observable与2.x的io.reactivex.Observable完全不同。 盲目升级rx依赖关系并重命名项目中的所有导入将进行编译&#xff08;稍作更改&#xff09;&#xff0c;但不能保证相同的行为。 在项目的早期&#xff0c; …

ubuntu安装与配置mysql_ubuntu下mysql的安装与配置

安装MySQL sudo apt-get install mysql-server 这个应该很简单了&#xff0c;而且我觉得大家在安装方面也没什么太大题目&#xff0c;所以也就未几说了&#xff0c;下面我们来讲讲配置。 配置MySQL 留意&#xff0c;在Ubuntu下MySQL缺省是只安装MySQLsudo apt-get install mysq…

Servlet 处理多种请求应用

一个 Servlet 如何处理多种请求? 1.使用后缀匹配模式 2.在 service 方法中获取请求资源路径&#xff0c;分析资源路径来决定作何处理 示例代码如下&#xff1a; package priv.lwx.javaex.web_demo_02.web.servlet;import javax.servlet.http.HttpServlet; import javax.serv…

小程序搜索框_微信小程序搜索及优化相关知识科普

生活中我们常常会用到微信小程序&#xff0c;但很多人不知道该如何搜索、找到小程序&#xff1b;而有些已经做了自己的小程序的商家&#xff0c;也不懂怎么提升自己的微信小程序搜索效果。所以下面就跟大家科普下这两个问题。1.怎么搜索微信小程序打开微信&#xff0c;点击右上…

java 函数式编程 示例_功能Java示例 第1部分–从命令式到声明式

java 函数式编程 示例功能编程&#xff08;FP&#xff09;的目的是避免重新分配变量&#xff0c;避免可变的数据结构&#xff0c;避免状态并全程支持函数。 如果将功能性技术应用于日常Java代码&#xff0c;我们可以从FP中学到什么&#xff1f; 在这个名为“ Functional Java …

su联合推拉插件_[实习小记一一SU建模]

鉴于本菜鸡在实习阶段一直在SU建模&#xff0c;那就讲讲我在SU建模的心路历程吧。本菜鸡之前还是SU小白时(俗称白斩鸡&#xff0c;并且现在也很白)&#xff0c;只会死命地用推拉。来到公司初探SU,第一个高层建筑便花费我半个月的时间(我突然想起有一篇日记特别好笑我是个SU人&a…

Linux 命令之 tar 命令-打包和备份的归档工具(附压缩/解压工具)

文章目录一、命令介绍二、命令语法三、常用选项四、命令示例&#xff08;一&#xff09;对指定的目录进行打包&#xff08;即备份归档&#xff09;&#xff0c;不压缩&#xff08;二&#xff09;对指定目录下的内容&#xff08;不含目录本身&#xff09;进行打包&#xff08;即…

纹理和基元_通过粘性仙人掌基元进行延迟加载和缓存

纹理和基元您显然知道什么是延迟加载 &#xff0c;对吗&#xff1f; 而且您无疑知道缓存 。 据我所知&#xff0c;Java中没有一种优雅的方法来实现它们中的任何一个。 这是我在Cactoos原语的帮助下为自己找到的。 Matteo Garrone的《 Reality》&#xff08;2012年&#xff09;…

oracle 造数据脚本_Oracle数据库shell脚本--统计所有数据库用户信息及明细

概述今天主要分享一下两个shell脚本&#xff0c;主要是为了查看所有数据库用户及其表空间&#xff0c;统计某个指定用户的明细&#xff0c;下面一起来看看吧~数据库连接脚本use script settdb.sh for DB login details registry#!/bin/bashtmp_username$SH_USERNAMEtmp_passwor…

学维修电脑要多久_学厨师要多久才出师

学厨师一般要学多久&#xff1f;以苏州新东方学厨师为例&#xff1a;厨师培训可以分为长期、短期。中餐、西餐、西点长期专业学习时间1-3年不等&#xff1b;短期专业从7天到8个月不等&#xff0c;主要是按学习内容来划分&#xff0c;比如学苏式汤面&#xff0c;只需要半个月左右…

Linux 命令之 rpm -- RPM 软件包的管理工具

文章目录一、命令介绍二、语法结构三、常用选项用于查询和检查包用于安装、升级和删除包用于执行其他功能四、命令示例&#xff08;一&#xff09;查询和检查包1. 查看一个已安装包的信息&#xff08;版本、用途等&#xff09;2. 查看与指定程序相关的所有安装文件3. 查看一个已…

react核心虚拟dom_使用虚拟时间测试基于时间的React堆核心流

react核心虚拟domReactor Core实现了Reactive Streams规范&#xff0c;并处理了&#xff08;可能无限的&#xff09;数据流。 如果您感兴趣&#xff0c;请查看它提供的出色文档 。 在这里&#xff0c;我假设对Reactor Core库的Flux和Mono类型有一些基本的了解&#xff0c;并且将…