更快的android输入点击命令

更快的android输入点击命令,android,adb,Android,Adb,我试图一个接一个地运行快速输入tap命令,但它们之间的间隔为1秒。 我想知道是否有一个选项可以让它们运行得更快。input是一个java应用程序,您看到的“延迟”取决于设备启动新java应用程序所需的时间。1s是较旧设备的典型配置 如果你想继续使用input,你就无能为力了。替代方法是要么修改输入,以接受一系列坐标,以便一次发送整个手势。虽然发送事件当然是一种替代方法,但它很麻烦且依赖于设备 还有另一种选择: CulebraTester通过web浏览器提供实时点击测试记录。此浏览器已连接到正在测

我试图一个接一个地运行快速输入tap命令,但它们之间的间隔为1秒。
我想知道是否有一个选项可以让它们运行得更快。

input
是一个java应用程序,您看到的“延迟”取决于设备启动新java应用程序所需的时间。1s是较旧设备的典型配置


如果你想继续使用
input
,你就无能为力了。替代方法是要么修改
输入
,以接受一系列坐标,以便一次发送整个手势。

虽然
发送事件
当然是一种替代方法,但它很麻烦且依赖于设备

还有另一种选择: CulebraTester通过web浏览器提供实时点击测试记录。此浏览器已连接到正在测试的Android设备。 生成的脚本与兼容,您可能已经知道。 两种解决方案之间的主要差异在于使用了不同的后端。在大多数情况下,AndroidViewClient/culebra通常使用
adb
作为其后端,而CulebraTester则使用在其支持的设备上运行的服务器

这是一个测试脚本。这是由CulebraTester自动生成的

#/usr/bin/env python
#-*-编码:utf-8-*-
'''
版权所有(C)2013-2018迭戈·托雷斯·米兰
创建于2018-02-06,由Culebratter创建
__    __    __    __
/  \  /  \  /  \  /  \ 
____________________/  __\/  __\/  __\/  __\_____________________________
___________________/  /__/  /__/  /__/  /________________________________
| / \   / \   / \   / \   \___
|/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\_____/--<
@作者:迭戈·托雷斯·米兰
@作者:Jennifer E.Swofford(ascii艺术蛇)
'''
进口稀土
导入系统
导入操作系统
导入时间
导入单元测试
尝试:
sys.path.insert(0,os.path.join(os.environ['ANDROID\u VIEW\u CLIENT\u HOME','src'))
除:
通过
导入pkg_资源
pkg_resources.require('androidviewclient>=12.4.0')
从com.dtmilano.android.viewclient导入viewclient,CulebraTestCase
从com.dtmilano.android.uiautomator.uiautomatorhelper导入uiautomatorhelper、UiScrollable、UiObject、UiObject2
标签='CULEBRA'
CulebraTests类(CulebraTestCase):
@类方法
def设置等级(cls):
cls.kwargs1={'ignoreversioncheck':False,'verbose':True,'ignoresecuredevice':False}
cls.kwargs2={'forceviewserveruse':False,'useuiautomatorhelper':True,'ignoreuiautomatorkilled':True,'autodump':False,'startviewserver':True,'compresseddump':True}
cls.options={'start-activity':None,'concertina':False,'device art':None,'use jar':False,'multi-device':False,'unit test class':True,'save screenshot':None,'use dictionary':False,'dictionary key from':'id','scale':1,'find view with content description':True,'window':-1,'orientation locked':None,'save view“:None,'find views by id':True,'log actions':False,'use regexps':False,'null back end':False,'auto regexps':None,'do verbose comments':False,'gui':False,'find views with text':True,'prepend to sys path':False,'install apk':None,'drop shadow':False,'output':None,'unit test method':None,'interactive':False}
cls.sleep=5
def设置(自):
super(CulebraTests,self).setUp()
def拆卸(自):
super(CulebraTests,self).tearDown()
def先决条件(自身):
如果不是超级(CulebraTests,self)。前提条件():
返回错误
返回真值
def testSomething(self):
如果不是self.prepositions():
self.fail('先决条件失败')
_s=睡眠
_v=冗长的测试
t=time.time()
对于范围内的uu(100):
self.vc.click(x=321,y=996)
打印(time.time()-t)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
CulebraTests.main()
仅添加了发送100次单击事件的定时循环。
运行它表明了使用这种方法可以改善延迟。

与@ThomasW提到的一样,该工具能够非常快速地自动点击(比我的应用程序识别它们的速度更快)。一旦启动它(需要几秒钟),触摸功能基本上是即时的:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection()
for i in range(1, 10000):
    device.touch(x, y, 'DOWN_AND_UP')

thx.但是我得到了这个错误:Traceback(最后一次调用):文件“test1.py”,第30行,在pkg_resources.require('androidviewclient>=12.4.0')文件/usr/local/lib/python2.7/dist packages/pkg_resources/u init_u.py),第972行,在required=self.resolve(parse_requirements(requirements))文件中“/usr/local/lib/python2.7/dist packages/pkg_resources/_init__.py”,第858行,在resolve-raise-DistributionNotFound(请求,请求者)中pkg_resources.DistributionNotFound:androidviewclient>=12.4.0发行版未找到,并且是应用程序所必需的。您是如何安装的?易于安装,pip?我应该用pip安装哪些库?那么,您的
pip install androidviewclient
命令的输出是什么?也许,您应该问另一个问题。我知道ave现在已安装androidviewclient。现在我收到以下错误:连接到serialno=.*的设备,超时时间为60秒…连接到serialno=.*的设备实际设备serialno=9885E6384584A4537 E=======================================================================================================================================================错误:testSomething(main.culeTests)------------------------------------------------------------我没有时间写答案,但使用monkeyrunner为我解决了这个问题。我有一个类似的问题,但对我来说,每个命令需要2到3秒。事件发生在我直接在设备上执行输入命令时
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection()
for i in range(1, 10000):
    device.touch(x, y, 'DOWN_AND_UP')