adb操控手机
一、前言
- AndroidDebug Bridge 我们一般简称为adb,它是一个非常强大的命令行工具,通过adb工具,你能够与你的android设备进行通信。使用adb命令是可以操控手机的,比如点击、滑动、输入等。在操控手机之前要先连接上手机,下面先来看下adb如何连接手机。
二、下载adb工具
- 官网下载地址:https://developer.android.com/studio/releases/platform-tools
- 这个地址也可以下载: https://www.appinn.com/download-adb-or-fastboot-without-android-studio/
三、连接手机
-
连接手机分为两种方式:1、有线连接;2、无线连接(要内网环境)
-
1、有线连接:
- (1) 数据线连接
- (2)把开发者选项和USB调试打开
- (3)如果有模拟点击之类的选项也一定要打开,否则adb操控无效
- (4)如果是连接成功 输入
adb devices
会显示你的设备。
-
2、无线连接(要求是内网环境,必须先有线连接)
- (1)使用
adb tcpip 5555
命令重启手机上的服务(端口可自定义) - (2)
adb connect 192.168.0.5:5555
连接手机,您的内网ip+刚才的端口号 - (3)再使用
adb devices
会多一个设备,就是成功了,这时候拔掉数据线,操控第二个设备都可以。
- (1)使用
四、命令操控手机
- 输入 0-9其中一个数字(
android手机地址就是adb devices显示的设备名称
)
adb -s <android手机地址> shell input keyevent 7-16
- 返回桌面
adb -s <android手机地址> shell input keyevent 3
- 返回键
adb -s <android手机地址> shell input keyevent 4
- 点击事件(这里的400 400 是点击X坐标400,Y坐标也是400的位置)
adb -s <android手机地址> shell input tap 400 400
- 滑动(可以模拟上下左右滑动)
adb -s <android手机地址> shell input swipe <X1> <Y1> <X2> <Y2>
如向下滑动: adb -s <android手机地址> shell input swipe 100 500 100 450
- 输入文本
adb -s <android手机地址> shell input text "hello" #输入hello
五、手机控制手机
-
上面说的是PC控制手机,现在说手机直接控制手机;可以写个android软件执行命令即可;需要注意的是:
-
1、操控自身app不需要root权限,一旦进入另一个app需要root权限的
-
2、命令有所改变,不需要 adb到shell这一串了,因为android系统已经进入了shell了
如模拟点击 input tap 400 400
-
-
如果是进入其他app,需要执行命令的代码(手机需要root)
public void execShellCmd(String cmd) {
try {
// 申请获取root权限,这一步很重要,不然会没有作用
Process process = Runtime.getRuntime().exec("su");
// 获取输出流
OutputStream outputStream = process.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(
outputStream);
dataOutputStream.writeBytes(cmd);
dataOutputStream.flush();
dataOutputStream.close();
outputStream.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现