SoloPi icon indicating copy to clipboard operation
SoloPi copied to clipboard

[BUG]快速点击时失效

Open orangex opened this issue 5 years ago • 1 comments

Describe the bug / 问题描述 点击失效: 在某些情况下(快速点击),TouchEventTracker 解析当前触摸事件时通过 cmdLine.readUntilSomething() 拿到的 getEvent 输出有莫名其妙的多余的换行符。 导致 doContentParse() 时以回车为分割符分离出的 lines (String[] lines = result.split("\n");)变得破碎。 举例: 正常情况应该得到如下的 lines:

 [  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(".", "");数组越界异常。

To Reproduce / 复现流程 举个复现的例子: 点击某处,唤出 Node 的 FunctionView 。 点击窗口之外取消弹窗后迅速点击,尝试唤出 FunctionView,此时就会失败(也就是不会弹出 FunctionView)

Device Info / 设备信息

  • Manufacturer/生产厂家: 小米
  • Device/设备: 小米 10
  • OS/系统版本: 基于 Android 10 的 MIUI 12.0.1
  • SoloPi Version/SoloPi版本 [e.g. 0.10.1]

Additional context/其他内容

不知道这个是不是 Adblib 的 bug,多次测试发现只出现在快速点击的情况下(已经排除掉 SoloPI 主动过滤短时间重复点击的逻辑)。 此外,Minicap 在基于 Android 9 和 Android 10 的 MIUI 上截图必然失败,不考虑个降级方案吗? screencap 啥的

orangex avatar Jul 07 '20 06:07 orangex

getevent解析时,由于目前是没半秒钟读取一次并解析, 所以可能导致上文出现的断行情况,这点预计下个版本修复。 第二点之前考虑通过screencap截图,但执行速度还是有些慢的,关于MIUI截图失败的问题,我们也在找另外的截图形式,可以继续关注下github发布信息。

cathor01 avatar Jul 20 '20 09:07 cathor01