android - 快速按键事件模拟​​(Android Shell)

标签 android adb sh

使用adb shell input text <String>adb shell input keyevent <KEYCODE_NAME>在向 Android 设备发送文本方面工作得很好,但我的问题是速度。

使用类似 input keyevent KEYCODE_A KEYCODE_A KEYCODE_SPACE KEYCODE_A KEYCODE_ENTER; 的内容将快速键入文本,但将其分成 2 个命令将导致 2 个命令之间有(1 秒)延迟(慢得多)。

示异常(exception)壳代码:

方法 1(更快):

input keyevent KEYCODE_A KEYCODE_A KEYCODE_ENTER KEYCODE_A KEYCODE_A KEYCODE_ENTER;

方法2:

input keyevent KEYCODE_A KEYCODE_A KEYCODE_ENTER;
input keyevent KEYCODE_A KEYCODE_A KEYCODE_ENTER;

我想尽快输入大文本,但有一个带有 input keyevent 的 shell 脚本比如后面跟着一个大的组合KEYCODE_A,将不会被执行。 (大型 Shell 命令被中止)

发送大文本而不产生长时间延迟的最佳方式是什么?
sendevent发送大文本会更快吗?

注意:

  • input text <String>的弱点是它的大小也有限制,并且不能在其内部执行特殊的键事件(如后退按钮或 Enter/New Line )。

提前致谢。

最佳答案

我知道您正在寻找 Android Shell,但我认为您已经用尽了那里可用的选项。

我知道一种比您尝试过的方法更快的方法,即使用Instrumentation:

final Instrumentation mInst = new Instrumentation();

mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, keycode));
mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, keycode));

关于android - 快速按键事件模拟​​(Android Shell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40112183/

相关文章:

Android:在 View /Activity/fragment 之间滑动切换

android - 接受带有自签名证书的 HTTPS 连接

Android - 通过 wifi 使用 adb 连接到设备

adb是远程设备自动连接的,但是我没有用adb connect

linux - Gawk 在找到 3 行之间的最小值时无法正常工作

node.js - 等价于 sh 的 <()?

c - 启动 shell 时如何撤消 freopen 的影响?

Android:如何在第一次打开应用程序时显示 "quick tour"?

java - android - 如何在java中将字符串转换为相同的byte[]值

objective-c - 使用 NSTask 运行 adb 命令