IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 移动端测试——日志分析 -> 正文阅读

[移动开发]移动端测试——日志分析

Android?App?常见异常
CRASH
在应用程序代码中出现了未捕获异常,导致程序异常退出,具体表现为闪退或App停止运行。
发生crash的原因:
? ? 一般是因为业务代码导致了异常,比如空指针、索引越界、内存溢出等。
ANR(Application Not?Responding)
应用程序无响应,用户的输入操作在5s之内没有得到相应,此时Android系统就会判定出现了ANR,会显示一个ANR对话框,用户可以选择继续等待或者关闭应用程序。
发生ANR的原因:
?? ?Android的机制是通过主线程(UI线程)创建UI、更新UI状态及处理用户的事件操作。如果在主线程中做了其他的一些耗时操作,比如:数据库读取、文件读取、网络操作等就会主线程阻塞,导致无法及时相应用户的操作。
logcat日志
logcat是Android中用来查看日志的命令行工具,Android会在运行的时候将系统及应用程序的日志保存到 logcat 中。
adb?logcat?命令格式:
adb?logcat <参数> ... <过滤器> ...
logcat日志由以下部分组成:
  1. 写下日志时的日期时间
  2. PID(进程ID)
  3. TID(线程ID)
  4. 优先级,在Android中,日志的优先级从低到高分以下几种:
?? ??? ?? ? V —Verbose (啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在? ? ?发布产品中输出)
?? ??? ?? ? D —Devug (调试,用于调试的信息,可以在发布产品中关闭,比较常见)
?? ??? ?? ? I —Info (信息,一般提示性的消息)
?? ??? ?? ? W —Warning (警告)
?? ??? ?? ? E —Error (错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
?? ??? ?? ? F —Fatal (严重的错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
?? ??? ?? ? S —Slient
?? ?? ? 5.? 标签(tag),日志发起者
?? ?? ? 6.? 正文,日志的主体内容
logcat?缓冲区
logcat?日志是保存在缓冲区中的,缓冲区可以通过logcat命令来查看和使用。
因为Android?logcat日志是实时不断打印的,所以需要用到环形缓冲区。在通常情况下,写满时最旧的日志会被删除以给新输出的日志留内存空间。
在开发者选项,有个选项就做“日志记录器缓冲区大小”,默认是256K。
Android?log?输出量非常多,因此Android会把不同类型的log输出到不同的缓冲区中:?? ?
?? ?? ? 1.?Radio:通讯系统的log,比如:蓝牙、WiFi、3G/4G等
?? ?? ? 2.?System:系统组件的log,比如:系统服务
?? ?? ? 3.?Event:事件的log,不如:触摸事件、按键事件
?? ?? ? 4.?Main:Java层的log,测试App需要重点关注的模块
如:想输出通信系统的log:
adb?logcat -b radio
默认log输出(不指定缓冲区的情况下)是输出Main和System缓冲区的log。
logcat 参数
参数
描述
-b <buffer>
指定查看的日志缓冲区,比如event和radio。默认值是main
-c
清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
-g
打印日志缓冲区的大小并退出
-d
将缓冲区的log输出带终端然后退出
-s
设置过滤器
logcat?过滤器
为了减少不想要日志的输出,可以建立一个过滤器
过滤语法:
tag:priority
比如:
#?仅输出tag为“ActivityManager”且优先级大于等于“info”
adb logcat -s ActivityManager:I
#?显示所有优先级大于等于“warning”的日志
adb logcat -s *:W
traces?日志
Android系统每次发生ANR后,都会在 /data/anr/?目录下面输出一个traces.txt?文件,这个文件记录了发生问题进程的虚拟机相关信息和线程的堆栈信息,通过这个文件我们就能分析出当前线程正在做什么操作,继而可以分析出ANR的原因。
获取traces.txt?文件
adb pull /data/anr/traces.txt <本地电脑路径>
需要注意:在Android 10?以下的系统会使用上述命苦可以导出traces文件,但是在Android 10及以上版本traces文件做了优化,会根据时间戳来分别生成单独的traces文件(可以避免traces文件覆盖问题),而且通过 adb pull?导出?traces文件时会提示 Permission denied?
解决方案:获取 bugreport?日志
bugreport?日志
bugreport文件中记录了系统运行过程中的各种log信息,bugreport中包含了设备日志、堆栈轨迹和其他诊断信息,可以帮助开发人员查找和修复应用中的错误。
获取bugreport?日志
第一种:
1.?在开发者选项中,选择生成 bug report
2.? 选择bug report?类型,过一会就会在通知栏收到一个报告准备好的通知
第二种:
adb bugreport <本地电脑目录>
bugreport?日志分析
bugreport?往往会包含大量的文件内容,可以利用工具 ChkBugReport 。
https://github.com/sonyxperiadev/ChkBugReport
使用步骤:
  1. ?下载ChkBugReport jar?包
?? ?? ? http://sonyxperiadev.github.io/ChkBugReport/download/chkbugreport-0.5-215.jar
  1. 解压bugreport-XXX.zip压缩包,得到 bugreport-XXX.txt文件,使用命令
????????java -jar chkbugreport-0.5-215.jar "bugreport-XXX.txt"
IOS端日志分析
ios设备上的应用崩溃之后,操作系统会生成一个崩溃报告,也叫崩溃日志,保存在设备上。
  • 应用违反操作系统规则(启动、退出超时,低内存终止)
  • 应用的业务代码导致的BUG
常见的日志获取方式有以下几种:
  1. 本机系统设置→隐私→分析与改进里找到当时的崩溃日志
  2. 使用第三方软件,比如 iTools、爱思助手等,可以导出?Crash?日志
  3. 使用Xcode,选择顶部菜单栏Windows,选中?Devices?and?Simulators?打开
移动端日志系统
日志系统,是移动端定位排查线上问题非常有效的一个工具,它还可以帮助我们统计用户行为、发现代码运行问题等。
第三方商业日志系统
?? ?? ? 1.?腾讯Bugly:https://bugly.qq.com
?? ?? ? 2.?友盟:https://developer.umeng.com/docs/119267/detail/119477
?? ?? ? 3.?听云:https://www.tingyun.com/
开源日志框架
?? ?? ? 1.?美团的Logan:https://github.com/Meituan-Dianping/Logan
?? ?? ? 2.?微信的xLog:https://github.com/Tencent/mars
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:39:30  更:2022-11-05 00:41:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 17:54:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码