#android #adb #sh
#Android #adb #sh
Вопрос:
Использование adb shell input text <String>
or adb shell input keyevent <KEYCODE_NAME>
отлично работает при отправке текста на устройство Android, но моя проблема заключается в скорости.
Использование чего-то подобного input keyevent KEYCODE_A KEYCODE_A KEYCODE_SPACE KEYCODE_A KEYCODE_ENTER;
позволит быстро ввести текст, но разделение его на 2 команды приведет к задержке (1 сек) между 2 командами (намного медленнее).
Пример кода оболочки:
Способ 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
следует большая комбинация KEYCODE_A, не будет выполнен. (Большие команды оболочки прерываются)
Каков наилучший способ отправки большого текста без длительных задержек?
Было sendevent
бы быстрее отправлять большой текст?
Примечание:
- Недостатком
input text <String>
является то, что он также имеет ограничение на свой размер и не может выполнять специальные ключевые события внутри него (например, кнопку «Назад» или ввод / новую строку).
Заранее спасибо.
Комментарии:
1.
input keyevent $(for i in $(seq 500); do echo 29; done; echo 30)
отлично работало на моем устройстве. вам нужно вводить более 500 кодов ключей одновременно?2. @AlexP. Ваш метод работает нормально, но проблема в том, что между каждой командой будет задержка в 1 секунду, чего я и пытался избежать.
3. Я не предлагал решение, а скорее ставил под сомнение ваш вариант использования
Ответ №1:
Я понимаю, что вам нужна оболочка Android, но я думаю, что вы исчерпали доступные вам варианты.
Я знаю один способ, который быстрее, чем то, что вы пробовали, используя Instrumentation
:
final Instrumentation mInst = new Instrumentation();
mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, keycode));
mInst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, keycode));
Комментарии:
1. Что такое инструментарий? Как и где это реализовать?