From 3404d55c56971c88734f5cfec58a3a9219ae7883 Mon Sep 17 00:00:00 2001 From: Zhuang Ma Date: Tue, 23 Aug 2016 18:39:53 +0800 Subject: [PATCH] Add input simulation commands --- README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/README.md b/README.md index 63106da..5cb30d4 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,10 @@ ADB,即 [Android Debug Bridge](https://developer.android.com/studio/command-li * [文件管理](#文件管理) * [复制设备里的文件到电脑](#复制设备里的文件到电脑) * [复制电脑里的文件到设备](#复制电脑里的文件到设备) +* [模拟输入](#模拟输入) + * [点亮/熄灭屏幕](#点亮熄灭屏幕) + * [滑动解锁](#滑动解锁) + * [输入文本](#输入文本) * [调试](#调试) * [查看/过滤日志](#查看过滤日志) * [查看设备信息](#查看设备信息) @@ -503,6 +507,75 @@ adb push ~/sr.mp4 /sdcard/ *小技巧:*设备上的文件路径普通权限可能无法直接写入,如果你的设备已经 root 过,可以先 `adb push /path/on/pc /sdcard/filename`,然后 `adb shell` 和 `su` 在 adb shell 里获取 root 权限后,`cp /sdcard/filename /path/on/device`。 +## 模拟输入 + +在 `adb shell` 里有个很实用的命令叫 `input`,通过它可以做一些有趣的事情。 + +`input` 命令的完整 help 信息如下: + +```sh +Usage: input [] [...] + +The sources are: + mouse + keyboard + joystick + touchnavigation + touchpad + trackball + stylus + dpad + gesture + touchscreen + gamepad + +The commands and default sources are: + text (Default: touchscreen) + keyevent [--longpress] ... (Default: keyboard) + tap (Default: touchscreen) + swipe [duration(ms)] (Default: touchscreen) + press (Default: trackball) + roll (Default: trackball) +``` + +下面是 `input` 命令的几种用法举例。 + +### 点亮/熄灭屏幕 + +命令: + +```sh +adb shell input keyevent 26 +``` + +执行效果相当于按电源键。 + +除了 26,还有很多其它的 keycode 可用,它们的含义如下: + +// TODO + +### 滑动解锁 + +如果锁屏没有密码,是通过滑动手势解锁,那么可以通过 `input swipe` 来解锁。 + +命令(参数以机型 Nexus 5,向上滑动手势解锁举例): + +```sh +adb shell swipe 300 1000 300 500 +``` + +### 输入文本 + +在焦点处于某文本框时,可以通过 `input` 命令来输入文本。 + +命令: + +```sh +input text hello +``` + +现在 `hello` 出现在文本框了。 + ## 调试 ### 查看/过滤日志 @@ -936,3 +1009,4 @@ Android 系统是基于 Linux 内核的,所以 Linux 里的很多命令在 And * [ADB Shell Commands](https://developer.android.com/studio/command-line/shell.html) * [logcat Command-line Tool](https://developer.android.com/studio/command-line/logcat.html) * [Android ADB命令大全](http://zmywly8866.github.io/2015/01/24/all-adb-command.html) +* [adb 命令行的使用记录](https://github.com/ZQiang94/StudyRecords/blob/master/other/src/main/java/com/other/adb%20%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%9A%84%E4%BD%BF%E7%94%A8%E8%AE%B0%E5%BD%95.md)