adb logcat输出日志分析和monkey输出日志分析,提交给开发的内容

2023-10-31

对于app测试所获取的日志,主要是为了看程序出现的crash和anr

crash:程序崩溃或闪退,一般会给出提示框:程序停止运行
anr:程序无响应(响应延迟),当操作在一段时间内系统无法处理的时候,弹出对话框:程序无响应,是否关闭


手工测试app,需要提交给开发的内容

adb logcat -c 清理现有日志
adb logcat -v time > D:\log.txt
输出带时间戳的日志到电脑上,开始手工测试,日志会自动持续记录到log.txt中



1. 对于crash错误,需要提交给开发的内容?

日志中搜索crash,在附近寻找,或者搜索fatal exception ,给开发截取从这一行开始,到下面所有E级别的日志,注意是连续的E级别的日志为止
在这里插入图片描述

并直接将整个日志发给开发,告知存在crash错误



2.对于anr错误,需要提交给开发的内容?
(1)日志中搜索anr in,在anr in前面可以看到方法调用栈信息写入的文件(驱使文件)
在这里插入图片描述

(2) adb pull /data/anr/traces.txt D:\111.txt 将方法调用栈文件拉到电脑上
在这里插入图片描述

可忽略:如果想进入设备中先查看该traces.txt文件是不是方法调用栈文件

adb shell       进入设备内部
cd /data/anr    进入该文件所处的目录
ls              列出该目录下所有的文件
cat traces.txt  查看方法调用栈文件
exit            退出shell模式

(3) 查看日志中产生anr的时间与方法调用栈文件的时间,确认是否有效,若相差几秒则有效,否则无效

(4) 将logcat日志中anr相关信息截图给开发,告知anr错误,并将整个logcat文件和traces.txt文件,一起提交给开发



问题1: 关于方法调用栈写入的文件(驱使文件)只能记载最新一次的anr信息,第二次的会将第一次的覆盖掉,如果发生多次anr,想查看每次发生anr所写入的方法调用栈文件如何做?

答:可以进入到设备的dropbox目录下面,查看多次产生anr写入的多个方法调用栈文件

adb shell                                 进入设备
cd /data/system/dropbox                   找到dropbox目录
ll  列出其中的文件详情,列出详情是为了用时间来分辨文件产生的先后,知晓对应的是日志中的哪次anr
exit                                      退出shell
adb pull /data/system/dropbox D:\dropbox  将整个dropbox目录拉到本地

在这里插入图片描述



问题2:现在安卓碎片化普遍,没有dropbox目录怎么办? 答:安卓碎片化,即很多手机厂商有自己的操作系统,在定制的过程中可能会对android原生进行修改,导致没有drop目录,那就看不了过往的,只能老老实实去 `/data/anr/traces.txt`中看最新一次的

monkey测试app,需要提交给开发的内容?

看这部分之前,强烈建议将上文“手工测试app,需要提交给开发的内容”先看完


1. 对于crash错误,需要提交给开发的内容?

adb shell monkey 参数> D:\log.txt ,输出monkey日志到电脑上
在monkey日志中搜索crash,将这些关键字,连同上下文,包括一些exception异常信息,一起发给开发,或者将整个日志发给开发
可以通过在monkey日志中搜索switch找到切换到了哪个APP,若指定了被测程序,那就只会有一个switch
也可以通过搜索 allowing start of intent,找到程序跳转到了那个Activity
在这里插入图片描述


2. 对于anr错误,需要提交给开发的内容?
答:需要提交logcat日志和trace.txt(方法调用栈写入的文件)及monkey日志一起提交给开发

monkey日志中anr相关信息不够详细,而logcat为Android系统日志,包含的内容更加详细,可以帮助开发人员定位问题。
如果要获取logcat日志,则需要在执行monkey测试之前开始记录,完整步骤如下:

adb logcat -c                                 #清除现有日志
adb logcat -v time >D:\logcat.log             #开始记录logcat日志
adb shell mnokey 参数 >D:\monkey.log          #执行monkey测试并输出monkey日志
adb pull /data/anr/traces.txt  D:\traces.log  #根据logcat日志中记录的traces文件目录,将traces.txt文件拉到电脑上

将以上三份文件中的关键信息给开发进行简要说明,然后将三份文件一起发给开发
问:需要跟开发简要说明什么?
答:自己的操作,monkey命令执行使用的一些参数,出现anr时所处的页面,在monkey日志中可以看到,,logcat日志中出现anr的上下文截图

问题: monkey执行过程中,发生多次crash或anr
答:众所周知,monkey命令运行时若加了--ignore-crashes ,app出现崩溃退出后还会自动重启并继续执行事件,所以日志中可以有多次crash,那么我们需要在monkey脚本结束之后,在monkey日志中直接搜索crash,记录每次发生crash的关键信息给开发说明,并将整个monkey日志提交给开发
执行monkey命令时若加了--ignore-timeouts,app出现anr错误时还是会继续执行事件,所以日志中会有多次anr,那么我们需要在monkey日志和logcat日志中搜索anr,记录每次发生anr的关键信息给开发说明,并将整个logcat日志,monkey日志,trace.txt文件发给开发

总结:发生了什么错误就去日志中搜什么关键字,给开发提供自己执行命令的参数,统计发生错误的次数,发生错误时所处的页面,将错误前后进行截图,发给开发,然后将整个日志记录文件发给开发

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

adb logcat输出日志分析和monkey输出日志分析,提交给开发的内容 的相关文章

  • Android 应用程序在后台时如何从 firebase-message 获取数据

    我正在使用 firebase console 发送 firebase 消息 这些消息应包含如下所示的附加数据 目的是在我的应用程序的 web 视图中打开特定的 URL 我设置了清单和 firebase 类来获取消息 在我的 firebase
  • Android Volley 对于一个请求返回两次结果

    我两天来一直在试图解决这个问题 但我完全被难住了 由于某种原因 我向队列发送一个请求 但 volley 返回两次 这会调用侦听器两次并使列表视图中的结果加倍 我打开了 Volley 的日志记录 可以看到请求被添加到队列中并返回 然后几秒钟后
  • 调整 Android 日期选择器控件的大小

    如何将 android datepicker 控件的初始大小调整为更小或更大 有没有唯一的方法可以重新实现它 我一直无法找到调整其大小的方法 但已经看到了使用 DatePicker 作为对话框的实现 日期呈现为带有编辑按钮的 TextVie
  • 运行低于 Lollipop 的设备上的 CameraManager

    我遇到一个问题 我同时使用 Camera 低于 Lollipop 设备 和 CameraManager 类 Lollipop 及以上设备 运行低于 Lollipop 的设备会崩溃 我相信这是因为 import android hardwar
  • 如何使用 JavaScript 提高音频加载速度?

    我已经创建了播放代码 mp3使用 JavaScript 文件 但该文件在 Android 上播放需要很长时间 我想在点击文本图像后快速播放声音 如何提高 Android 的加载速度 我的 JavaScript 代码 if window au
  • 为什么mapbox-android sdk 无法从build.gradle 解析?

    我试图在这里设置基本教程 但我被 Android Studio 中的错误阻止 https docs mapbox com android maps overview install the maps sdk https docs mapbo
  • 使用actionBar推送视图的正确方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是一名新的 Android 开发人员 所以我更喜欢询问正确的方法来解决我的问题 我有一个 FragmentActivity 和多个片段
  • 向 Android 操作栏添加按钮

    我如何制作带有文本的按钮 在操作栏中带有图像 如下所示 是否可以使用内置的 android 按钮或图像按钮在操作栏中执行如下操作 我正在使用 appcompat 来使用操作栏 是的 如果需要 您可以膨胀自定义操作栏 Override pro
  • 如何让按钮的角变圆?

    我想制作一个角button圆形的 在 Android 中是否有一种简单的方法可以实现这一点 如果你想要这样的东西 这是代码 1 在您的可绘制文件夹中创建一个 xml 文件 如 mybutton xml 并粘贴以下标记
  • Android - 使用 Intent 打开 PDF 文档关闭后不保存

    我面临的问题是 当尝试保存对使用此 URI 打开的 PDF 文档的更改时内容 xx xxx xxx fileprovider external Download Sync FileName pdf 我所做的任何更改在关闭文档后都不会保存 但
  • @android的含义

    我想问一下是什么意思 android as in android id android id list 我在不同的 android 示例和教程中看到过它 我也用谷歌搜索过它 我发现的唯一解释是 列表和空 ID 是由 Android 平台为我
  • TextView 中缩进项目符号列表

    我有一个 TextView 我用 strings xml 中的字符串资源中的文本填充它 字符串资源包含 元素 用于在 TextView 内创建项目符号列表 我的问题是我想控制项目符号列表中跨越多行的行的缩进 默认情况下 文本不会缩进超过项目
  • Ctrl 单击 Eclipse 中的类显示二进制/jar 而不是源

    使用Eclipse 版本 Helios 服务版本 2 内部版本号 20110218 0911 与Android插件 我有一个 Android 项目 AndroidUtil 它被标记为我的主要 Android 应用程序的 库 项目 当我按住
  • Android 中 Admob 的 XML 或 Java 关键字

    我似乎找不到任何有关通过 XML 或 Java 设置 adMob 广告关键字的可靠文档 我已经尝试过中看到的方法this https stackoverflow com questions 5066129 android admob api
  • popBackStack导致反复调用fragment的oncreateView

    我有 3 个片段 A B C 我编写了一段代码来替换它们并维护 backstack public void addFragment Fragment fragmentToAdd String fragmentTag FragmentMana
  • 选择活动时运行时崩溃

    首先我想说我几乎没有 Android 经验 这是我在 Android 中的第一个项目 而且我的老师不太擅长教学 所以我对任何过度的无知表示歉意 在进一步讨论之前先解释一下 我的应用程序的目标本质上是能够记录您在某些活动上花费了多少时间 记录
  • 我可以在“com.android.vending.BILLING”中使用“uses-feature”而不是“uses-permission”吗?

    在我的应用程序的 AndroidManifest xml 中 我目前有
  • 在 Android(JB 上)中,如何向自定义丰富通知添加操作?

    我一直在使用 Jelly Bean 中新的丰富通知 当我使用模板设置新通知时 一切都按预期工作Notification BigPictureStyle Notification BigTextStyle or Notification In
  • 在 IntelliJ IDEA 11 中编译期间未检测到模块依赖性

    我正在开发一个 Android 应用程序 我正在尝试包含图形视图 https github com jjoe64 GraphView绘制一些图表 需要将其作为模块依赖项包含在内 执行此操作后 IntelliJ IDE 会正确检测到包 我可以
  • 扩展Android应用程序类

    当我正在寻找从远程设备获取错误报告的解决方案时 就像 iOS 中的试飞应用程序一样 我发现了acra适用于 Android 设备here http code google com p acra wiki BasicSetup 在基本设置中

随机推荐

  • java自动化测试

    Java是一种强大的编程语言 也可以用于自动化测试 以下是使用Java进行自动化测试的一般步骤 确保您已安装Java开发环境 JDK 在开始之前 请先安装适合您系统的Java JDK 并设置正确的环境变量 选择自动化测试框架 Java有多个
  • 新手入门:Python和C语言哪个更难?零基础学哪个好?

    Python和C语言哪个难 零基础学哪个好 六月编程语言排行榜 Python直追C语言龙头老大 预计将会有可能超过C语言成为下次的编程语言排行榜第一 于是乎 很多同学又听说Python简单易学 不由心动 那么 我们零基础入门编程的话 选择哪
  • myeclipse破解文件破解后只能使用5天的解决方法

    我装myeclipse真的是已经一个多月了 之前那个 舍友的按照那个方法破解就可以了 但是我的不行 期间重装了好几十次 今天终于不懒 找到了解决的方法 1 按照的方法还是一样的 有finish那一步 取消勾选绿色大 下的勾选项 完成安装后不
  • 2023第十四届蓝桥杯Python大学生B组真题?(真题+附链接)

    第十四届蓝桥杯大赛软件赛省赛 Python 大学 B 组 试题 A 2023 本题总分 5 分 问题描述 请求出在 12345678 至 98765432 中 有多少个数中完全不包含 2023 完全不包含 2023 是指无论将这个数的哪些数
  • 什么是多态,如何在Java中实现多态?

    欢迎来到多态的世界 在这里 我们将探讨Java中的多态性 以及如何让你的代码实现多态性 让我们先从一个有趣的故事开始吧 有一天 一只小猪走进了一家餐馆 它点了一份 红烧猪肉 但是 当它拿到盘子时 却发现上面只有一块 猪肉 而且还是生的 小猪
  • 【毕业设计项目】基于单片机的手势识别设计与实现 - 物联网 嵌入式 stm32 c51

    文章目录 1 简介 2 实现效果 3 使用场景 4 参数说明 5 注意事项 6 最后 1 简介 Hi 大家好 这里是丹成学长 今天向大家介绍一个学长做的单片机项目 基于单片机得手势识别系统 大家可用于 课程设计 或 毕业设计 单片机 嵌入式
  • RFID智能仓储温湿度自动监测系统,物联网+RFID仓库管理-新导智能

    一 RFID仓库温湿度自动监测管理系统 1 1 RFID智能仓库管理系统简介 苏州新导药品储运温湿度监测系统由管理主机 测点终端 运行软件等组成 通过主服务器实时显示和监测各监测点的温湿度状况 自动记录温湿度实际数值 实现药品储存 运输温湿
  • 微信小程序分享功能(uniapp、uView)

    微信小程序分享功能 uniapp uView 该对象已集成到this u中 内部属性如下 uni u mpShare 默认为小程序名称 可自定义 title 分享的标题 默认为当前页面路径 一般无需修改 QQ小程序不支持 path page
  • 回归分析中,证明:总离差平方和=回归平方和+误差平方和。

    证明 总离差平方和 回归平方和 误差平方和 S S T S S R S S E S S T S S R S S E SST
  • java内存结构

    一 Java内存分配 1 Java有几种存储区域 寄存器 在CPU内部 开发人员不能通过代码来控制寄存器的分配 由编译器来管理 栈 在Windows下 栈是向低地址扩展的数据结构 是一块连续的内存的区域 即栈顶的地址和栈的最大容量是系统预先
  • Alpine Docker 安装 bash

    Alpine Linux是一个轻型Linux发行版 它不同于通常的Linux发行版 Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗 Alpine Linux提供了自己的包管理工具 apk 我们可以
  • Scratch精通之积木的使用

    到目前为止 我们已经学习了很多个代码块了 这些代码块可以完成相应的功能 比如 移动10步 等待1秒 等代码块 我们并不知道它们是如何实现移动或等待功能的 我们只知道可以实现角色移动或等待的效果 这就是编程里面说的封装的概念 所谓封装 就是把
  • Distributed Compilation

    Introduction Distributed compilation is a technique that allows developers to compile code in parallel across multiple m
  • STM32——使用cubemx和keil点亮第一个灯

    一 环境 cubemx安装和搭建见博文 链接 STM32CubeMX安装 keil安装见软件安装管家 注意要是MDK版 二 cubemx操作 1 打开cubemx 2 选择ACCESS TO MCU SLCTOR 创建一个新的工程 3 选择
  • 部署Pod非Running状态,describe查看显示node资源不足

    一 node 节点资源不足的几种情况 1 执行kubectl top node 查看是否真的资源不足 2 报资源不足有多种情况 第一种是真的资源不足 第二种可能是Node上没有打Pod的yaml中定义的nodeSelector 标签所以导致
  • python数据表合并、stack函数、数据分块读取

    数据表的合并 stack函数 数据分块读取 1 concat 2 join 3 merge merge类似sql里面的join 连接方式有inner 默认 left right outer几种模式 对应为内连接 左连接 右连接 全连接 In
  • IDEA 2022 创建 Maven Web 项目教程

    新建项目 IDEA上方工具栏点击 文件 gt 新建 gt 模块 此时的目录结构 需要在main文件夹下补全两个文件夹 点击main 右键 gt 新建 gt 文件夹 IDEA已经给我们提示缺失的文件夹了 依次创建就好 创建后目录结构 IDEA
  • 安装完Anaconda后打不开Spyder

    安装完Anaconda后打不开Spyder python anaconda spyder 安装完Anaconda anaconda navigator里面一切正常 launch spyder后出现spyder的图标 但是spyder仍然打不
  • ubuntu下qnx7.0交叉编译qt5.9.7源码

    在CSDN上查阅了大部分qnx7 0平台编译qt源码的博客 都没有详细给出具体过程和报错处理方式 导致博主在编译时遇到诸多问题 耗时两周才成功编译qnx下aarch64架构版本的qt库 尝试过诸多版本的qt编译之后 发现都会编译过程中报错
  • adb logcat输出日志分析和monkey输出日志分析,提交给开发的内容

    对于app测试所获取的日志 主要是为了看程序出现的crash和anr crash 程序崩溃或闪退 一般会给出提示框 程序停止运行 anr 程序无响应 响应延迟 当操作在一段时间内系统无法处理的时候 弹出对话框 程序无响应 是否关闭 手工测试