• 使用 minitouch 能够显示点击位置,完结
    有更好的使用工具可以在此留言~

  • 重新定义 ADB 客户端 -- fa at 2018年12月18日
  • 重新定义 ADB 客户端 -- fa at 2018年12月17日

    不错不错 不过个人想法还是觉得设计上是不是把 adb 协议通信层 跟 上面复杂的自定义功能(例如你提到的 url 直接安装、截图等等)分隔开会好一点?这样的话说不定 adb 协议层还能被抽出来用到别的项目上😀

  • 试了一下不可以啊 只有指针位置(那个十字线)没有触摸点😕 在小米与 oppo 手机上都试过

  • 😹 改变该元素的背景颜色除了改源码还有别的办法吗?

  • 可以看看这个 https://testerhome.com/topics/16063 有好的 idea 也欢迎交流学习下

  • OK 后面有空试试看 主要还是担心精确度不高 因为这个毕竟跟 fps 还是强相关 谢谢~~ 😃

  • 好的~ 主要是我们之前试用过一些软件层面的录制工具,但是发现 fps 不如外部硬件来的稳定。不知道这个如何?

  • 好像没有入口诶 还是提示 未开通专栏

  • 😹 😹 老哥给点建议?

  • 申请开通一个 😀

  • 测试 FPS 的话,android 原生就有支持啦,论坛里有挺多别的帖子:这里

  • 我是觉得用这类 ui 框架计算性能有些越俎代庖,它本身的设计注定了它不可能得到一个非常精确的结果。比较好且方便的方法是进行日志埋点之后进行抓取;或者结合图像识别与高速相机

  • 改好啦 用 pip 更新一下就可以了 最新的应该是 0.3.0

    2018-11-11 02:24.11 DEVICE                         adb_cmd=['adb', '-s', '123456F'] id=123456F ip=None
    Traceback (most recent call last):
      File "/Users/admin/pyat/demo.py", line 27, in <module>
        result = d.test_a()
      File "/Users/admin/pyat/pyatool/core.py", line 88, in <lambda>
        return lambda *args, **kwargs: command(*args, toolkit=self, **kwargs)
      File "/Users/admin/pyat/pyatool/core.py", line 53, in <lambda>
        return binder.add(func_name, lambda toolkit: toolkit.adb.run(command))
      File "/Users/admin/pyat/pyatool/adb.py", line 26, in run
        return self._exec(final_command)
      File "/Users/admin/pyat/pyatool/adb.py", line 36, in _exec
        raise RuntimeError(feedback)
    RuntimeError: error: device '123456F' not found
    

    报错信息会正常出现了

  • 目前如果命令执行遇到问题的话就统一会报这个错误的,后面打算改一下吧~
    真正的报错内容应该在 Trackback 上面,例如:

    error: device '123456F' not found
    Traceback (most recent call last):
      File "/Users/admin/pyat/demo.py", line 24, in <module>
        d = PYAToolkit('123456F', mode='remote')
      File "/Users/admin/pyat/pyatool/core.py", line 42, in __init__
        self.adb = ADB(device_id, mode)
      File "/Users/admin/pyat/pyatool/adb.py", line 15, in __init__
        self.device_ip = self._enable_remote_connect()
      File "/Users/admin/pyat/pyatool/adb.py", line 46, in _enable_remote_connect
        ip_address = self._get_ip_address()
      File "/Users/admin/pyat/pyatool/adb.py", line 41, in _get_ip_address
        result = self.run(['shell', 'ifconfig', 'wlan0'])
      File "/Users/admin/pyat/pyatool/adb.py", line 26, in run
        return self._exec(final_command)
      File "/Users/admin/pyat/pyatool/adb.py", line 36, in _exec
        raise RuntimeError(feedback)
    RuntimeError: unknown error happened when execute ['adb', '-s', '123456F', 'shell', 'ifconfig', 'wlan0'], view terminal for detail
    

    根据第一行可以看出问题是找不到设备

  • 有点吧.. 后面用 ddmlib 结合写了一个就挺简洁的 但是就不是纯 python 库反而没有这个用着方便了
    同步调用是指能主动获取当前设备连接状况对吧?

  • hahahhah 尴尬

    加了 ~
    你们换用 c++ 之后效率有很大提升吗?其实 python 用的 opencv 跟 skimage 底层不还是 c++ 嘛 只是用 Python 写一下逻辑 感觉效率没有质的改善?这一块还没有试过
    我觉得比较可行的方案还是在可行的范围内降低图像质量 或者在录制的时候先把图片预处理的部分给解决了比较好
    不过你们图也太多了。。是在搞机器学习?
    现在也是这么弄架子 adb 操作,但是总觉得有些简陋.. 😂

  • 仅楼主可见
    • 一帧对应的就是一张图片啊
    • 如果可以定制入口的话就可以定制一下按钮点击事件,让它做出响应的变化(比如说改掉上面的字,这样 OCR 就可以识别到;如果不可以,就打开一下开发者选项里的显示点击位置,然后把那个圆点截出来作为特征图片进行 match template
    • 确实现在来看不算差
    • 哈哈哈那个只是举个例子说有这么个 API 啦 项目用肯定是 60+
    • 一帧分析耗时 1-2s 左右 不需要 OCR 的话可以更快些 放晚上跑的话我觉得效率也不是一个硬需求吧 现在反而录制自动化上不好解决
    • 不太明白你说的首帧是指什么?..用户操作的时间点吗
  • 算法的角度上我觉得结构相似性确实不是最好的选择吧,它一开始是用于评估压缩前后的图像质量变化的,在精确程度上还有待与其他算法比较。😕 这一块研究的不深入,后续再优化看看,有什么建议的话欢迎指教

  • 有没有必要我觉得还是看实际情况了
    如果只是为了统计单一产品在迭代过程中的变化趋势 那我觉得用 uiautomator 也没毛病 反正控制好变量 能有一个大概结果就行
    但是如果还需要跟竞品对比 那精确的数据还是很有说服力且重要的吧

    另外个人觉得实时计算在这种速度类的测试上并不是很可靠,比如元素的定位耗时不稳定、元素不好获取(游戏、webview 之类)😀

  • 0.2s 是一个巨大的误差其实 因为有些场景下的启动时间一共就不到 1s 而页面切换时间会更低
    而且 uiautomator 如果页面里没有常规控件的话并不能用(例如游戏

  • 这个主要考虑的是不同用户的需求有所不同 为了方便随心所欲的自定义 所以就没怎么做定制啦~
    不过确实有一部分共性的东西是可以做的,就是工作比较忙所以😂

    我是比较倾向大家根据自己需要继续往上面加组件啦 用 vue+element 学习成本不高 也能比较自由