• 贴代码最好用 ``` 括起来,不然看起来还是很乱😂

    minitouch在建立连接完成之后会打出一些版本信息之类的东西(你可以手动启动minitouch看看),在socket建立之后应该先把这些信息给去掉或者做特定处理,可以参考pyminitouch/connection.py里的实现。我感觉这个比较符合你说的运行好几次才会执行命令的情况。

  • 看看代码..?

  • 😹 对呀 现在确实是这么设计的

    至于为什么用服务器而不是文件与数据库,我的理由是设备状态是个时效性比较强的东西,并不是很有必要进行持久化保存。

  • 一部分哈,速度类还会包括一些扩展的类似页面切换速度、应用启动速度之类的。
    可以啊😄

  • 去翻了一台4.4的手机终于复现这个问题了...
    感觉是因为pycharm的终端对换行符的错误解析导致的,以前android版本的换行符都是\r\r\n

    你可以按照如下步骤看看:

    1. 不要用pycharm的终端运行,直接用cmd或者powershell之类的终端运行。我这边在终端上运行是正常的
    2. 如果要用pycharm,可以把换行符换掉result = result.replace('\r\r\n', '\r\n')。这么做之后我在pycharm上运行也正常
  • 日志展示的是全的对吗?
    然后result1是空还是package:com.github.uiautomator\r\r\npackage:com.letv.android.FuseWire\r\r\n呢?
    不过我发现乐视手机上是\r\r\n换行 其他手机都是\r\n

  • 我手边没有乐视手机,而且没遇到过这种情况..
    你可以试一下:

    1. pip install --upgrade pyatool更新一下版本
    2. 在脚本最前面打开日志(默认是关闭的):PYAToolkit.switch_logger(True)
    3. 看一下日志里的输出是什么样的
  • 那其他的API是正常的吗?

  • 这个问题我好像没遇到过 我是测过oppo、小米

    def show_package(toolkit=None):
    """
    展示设备上所有已安装的包
    :param toolkit:
    :return:
    """

    return toolkit.adb.run(['shell', 'pm', 'list', 'package'])

    可以点进去看源码实现的,可以先试一下 adb shell pm list package是不是正常的?乐视的手机我很少见到😹

  • 是的.. 不过这个东西主要也是为了支撑其他工具用 作为中间件存在吧 不然一旦要用minitouch都要重新搞一个连接层麻烦死了😹