当前位置: 首页 > 知识库问答 >
问题:

可以在adb logcat中清除指定的消息或行而不是清除所有吗?

支淮晨
2023-03-14

我正在使用Monkeyrunner(automation)在Android设备(三星S2)上测试一个应用程序,因为它不允许我看到屏幕上的图像模式,所以我必须依靠adb logcat(使用Windows)来查找特定消息,以便知道我的自动化脚本的下一页何时加载。

为了在logcat中查找特定(唯一)消息,对于我的monkeyrun脚本,我必须清除所有adb日志,然后执行搜索。

有没有一种方法可以只清除匹配特定标签、消息、文本或任何内容的行(!idspnonenote)。),在logcat日志内?而不是清空所有东西?

命令行adb功能是否允许您清除特定的行,或者它是一种全有或全无的东西?

清除所有 logcat 长关是可以的,但最好只清除某些消息,以便如果/当发生应用程序崩溃,或者我需要进行故障排除的详细信息的某些事件时,我可以看到导致崩溃(或重大事件)的所有日志。因为如果清除所有内容,则我无法查看logcat日志以进行故障排除。

更多信息:

这是我目前用来清除所有日志的函数。

def clearAdb():
    p = subprocess.Popen("adb logcat -v time", shell=True, cwd="C:\Users\<USERNAME>AppData\Local\Android\sdk\platform-tools", stdout=subprocess.PIPE)
    subprocess.Popen("adb logcat -c", shell=True, cwd="C:\Users\<USERNAME>AppData\Local\Android\sdk\platform-tools", stdout=subprocess.PIPE)
    print("::: ADB cleared :::")

...这是我如何寻找logcat日志的示例。此adb函数无限期等待特定的adb消息,并在看到时进行处理。

def adb(message):
    p = subprocess.Popen("adb logcat -v time", shell=True, cwd="C:\Users\<USERNAME>\AppData\Local\Android\sdk\platform-tools", stdout=subprocess.PIPE)
    for line in p.stdout:
        if message in line:
            print("Got 'em")
            break
        else:
            continue

...这就是我目前使用这些功能的方式...

clearAdb()
adb("identifyGamePackage. com.tfg.nameofapplication")

共有1个答案

邓兴为
2023-03-14

要将< code>logcat输出限制为某个时刻之后发生的消息,您不必清除日志。请改用< code>logcat -T

 类似资料:
  • 我们设置了几个ActiveMQ Artemis 2.17.0集群,以便在数据中心之间使用镜像进行复制。 在ActiveMQ Artemis 2.17.0或更高版本中有什么方法可以实现这一点吗?

  • 下面是我正在使用的代码: 执行这段代码后,它将清除整行文本,而不是只清除给定矩形内的文本。 为了更好地解释事情,我附上了pdf文档。 任何帮助都将不胜感激。

  • 问题内容: 我正在研究模仿Paint的程序。问题是当我绘制新形状时,以前的形状会被删除。我试图注释掉我的paintComponents的超级调用,该调用可以工作,但是留下了太多的绘图。 问题答案: 正如您所发现的,您需要调用,否则背景不会被绘制,并且一切都是一团糟。问题在于,由于该字段只能是单个值,因此一次只能绘制一个形状。一种解决方案是创建一个形状,然后在in中绘制每个形状。

  • 问题内容: 我遇到了一个问题。我不知道如何在不将后记留空的情况下删除行。 我正在使用Apache-POI 3.9,使用下一个代码时出现错误: 更新版本: 我找到了解决方案:但是由于每个删除行都减少了lastRowNum,所以我得到了空指针。 这是新版本: 最后更新: ManishChristian帮助我解决了这个问题! 问题答案: 试试下面的代码,它应该可以工作: 每次删除一行都需要减少一。并再次

  • 问题内容: 有没有办法清除给定窗口中的所有超时?我认为超时存储在对象中的某个位置,但无法确认。 任何跨浏览器解决方案都是受欢迎的。 问题答案: 它们不在window对象中,但是具有id,这些id是连续的整数。 因此,您可以像这样清除所有超时:

  • void clear_all_cache(int expire time) This clears the entire template cache. As an optional parameter, you can supply a minimum age in seconds the cache files must be before they will get cleared. 清除所