openatx / atxserver2

Smart Phone Management. Reimplement of atx-server with Python
MIT License
1.34k stars 421 forks source link

ATX2控制,那个【红蓝点】一直卡着不动? #79

Open Nexus-GT-One opened 3 years ago

Nexus-GT-One commented 3 years ago

image 目前我的ATX2的运行环境是: mac: 11.2.3 Xcode: 12.4 Android studio:4.1.2 python: 3.9 node: v16.0.0 nvp: 7.10.0

但是,安卓\iOS都装好了。安卓的明显比iOS要流畅很多,iOS经常会遇到拖动完之后,【红蓝点】就卡住不动了,要重新刷新ATX2网页才能消除【红蓝点】,ios操作体验上感觉好卡

chenhengjie123 commented 2 years ago

红蓝点卡住原因是 wda 对于滑动事件的响应慢,且容易超时变为500返回。响应慢的原因是经常 dump 控件树,dump 操作是非常耗时的(复杂页面10s以上很正常)

解决点:

1、远程控制页面连上设备后,把默认的控件树 dump 深度,改为0,可以显著提升滑动流畅度。缺点是如果有连上这个 wda 做 UI 自动化的需要,UI自动化侧需要重新把深度调回默认值,否则会因为控件树是空的导致全部控件查找失败。 参考操作: 把连接后默认设置的帧率改为30fps 通过 get 请求访问 <设备 wda 地址>/session/<sessionID>/appium/settings 即可看到完整的配置项,其中和控件深度有关的配置项带有 snapshot 关键字。

2、把wda响应超时时间延长(解决只有刷新后才有反应问题)。这个改动目前 ios provider 项目已有,更新代码后重启即可。