Open orangex opened 4 years ago
Describe the bug / 问题描述 点击失效: 在某些情况下(快速点击),TouchEventTracker 解析当前触摸事件时通过 cmdLine.readUntilSomething() 拿到的 getEvent 输出有莫名其妙的多余的换行符。 导致 doContentParse() 时以回车为分割符分离出的 lines (String[] lines = result.split("\n");)变得破碎。 举例: 正常情况应该得到如下的 lines:
TouchEventTracker
cmdLine.readUntilSomething()
doContentParse()
String[] lines = result.split("\n");
[ 528400.942517] /dev/input/event4: EV_ABS ABS_MT_TRACKING_ID 00008a1a [ 528400.942517] /dev/input/event4: EV_KEY BTN_TOUCH DOWN [ 528400.947728] /dev/input/event4: EV_ABS ABS_MT_POSITION_X 0000040a [ 528400.942517] /dev/input/event4: EV_ABS ABS_MT_TRACKING_ID 00008a1a [ 528400.942517] /dev/input/event4: EV_KEY BTN_TOUCH DOWN [ 528400.947728] /dev/input/event4: EV_ABS ABS_MT_POSITION_X 0000040a
异常情况下:
[ 528400.942517] /dev/input/event4: EV_ABS ABS_MT_TRACKING_ID 00008a1a [ 528400.942517] /dev/input/event4: EV_KEY BTN_TOUCH DOWN [ 528400.947728] /dev/input/event4: EV_ABS ABS_MT_POSITION_X 0000040a
这样会导致对每个 line 解析时异常,因此涉及到 BTN_TOUCH DOWN、 ABS_MT_POSITION_X/Y 等最终没能消费成功。 此外,还会引起 getEventMicroSecond() 中 content = content.split("\\[")[1].replace(".", "");数组越界异常。
getEventMicroSecond()
content = content.split("\\[")[1].replace(".", "");
To Reproduce / 复现流程 举个复现的例子: 点击某处,唤出 Node 的 FunctionView 。 点击窗口之外取消弹窗后迅速点击,尝试唤出 FunctionView,此时就会失败(也就是不会弹出 FunctionView)
Device Info / 设备信息
Additional context/其他内容
不知道这个是不是 Adblib 的 bug,多次测试发现只出现在快速点击的情况下(已经排除掉 SoloPI 主动过滤短时间重复点击的逻辑)。 此外,Minicap 在基于 Android 9 和 Android 10 的 MIUI 上截图必然失败,不考虑个降级方案吗? screencap 啥的
getevent解析时,由于目前是没半秒钟读取一次并解析, 所以可能导致上文出现的断行情况,这点预计下个版本修复。 第二点之前考虑通过screencap截图,但执行速度还是有些慢的,关于MIUI截图失败的问题,我们也在找另外的截图形式,可以继续关注下github发布信息。
Describe the bug / 问题描述 点击失效: 在某些情况下(快速点击),
TouchEventTracker
解析当前触摸事件时通过cmdLine.readUntilSomething()
拿到的 getEvent 输出有莫名其妙的多余的换行符。 导致doContentParse()
时以回车为分割符分离出的 lines (String[] lines = result.split("\n");
)变得破碎。 举例: 正常情况应该得到如下的 lines:异常情况下:
这样会导致对每个 line 解析时异常,因此涉及到 BTN_TOUCH DOWN、 ABS_MT_POSITION_X/Y 等最终没能消费成功。 此外,还会引起
getEventMicroSecond()
中content = content.split("\\[")[1].replace(".", "");
数组越界异常。To Reproduce / 复现流程 举个复现的例子: 点击某处,唤出 Node 的 FunctionView 。 点击窗口之外取消弹窗后迅速点击,尝试唤出 FunctionView,此时就会失败(也就是不会弹出 FunctionView)
Device Info / 设备信息
Additional context/其他内容
不知道这个是不是 Adblib 的 bug,多次测试发现只出现在快速点击的情况下(已经排除掉 SoloPI 主动过滤短时间重复点击的逻辑)。 此外,Minicap 在基于 Android 9 和 Android 10 的 MIUI 上截图必然失败,不考虑个降级方案吗? screencap 啥的