Android sendevent es realmente lento, ¿cómo acelerarlo?



user-interface automation (2)

DE ACUERDO. En lugar de utilizar getevent / sendevent, puede intentar la lectura directa desde la interfaz del evento dentro de adb shell try:

dd if = / dev / input / event6 of = record1 # para grabar

dd if =. / record1of = / dev / input / event6 #para jugar

Sin embargo, esto puede correr demasiado rápido ...

https://ffff65535.com

Estoy haciendo algo de automatización de la interfaz de usuario, y puedo almacenar toques de pantalla con getevent, pero cuando intento enviar esto usando sendevent, me lleva mucho tiempo, lo que dificulta la reproducción de las entradas.

Ya he intentado cargar el script en el dispositivo y ejecutar el script localmente en el dispositivo (un script con varios comandos sendevent). Pero esto solo lo importó un poco. ¿Hay alguna otra forma de inyectar estos comandos de una manera más rápida?


El controlador para el tacto se implementa de manera diferente en todos los dispositivos. Debe cat /proc/bus/input/devices para ver dónde se implementa el controlador táctil.

También puede hacer adb shell getevent , interactuar con el dispositivo y ver el resultado del nombre de la interfaz.

El motivo por el que la reproducción tarda mucho tiempo se debe a que el binario sendevent abre el archivo de interfaz, le escribe datos y lo cierra para cada llamada a sendevent. Entonces, en teoría, si tiene un grupo de comandos sendevent, el binario está abriendo el archivo de interfaz, escribiendo datos y cerrándolo para cada comando.

La forma en que he resuelto este problema es volver a escribir el archivo sendevent.c en / system / core / toolbox para abrir el archivo una sola vez durante la reproducción, escribir todos los datos y cerrarlo al final de la reproducción. ¡Funciona perfectamente para mí!





adb