一:前言

在日常测试app时,经常会遇到崩溃问题,测试快速抓取到崩溃日志可以有效方便开发进行定位,快速解决问题所在
测试做到测试分析,定位是非常重要的,这也是判断一个测试能力指标的一大维度。

二:Android崩溃日志

一、通过adb logcat获取

# 清除日志,新手上路时,日志内容很多,对于能毕现的日志,可以先清除后重新获取
adb logcat -c
# 然后再次运行崩溃操作,再抓取日志
# 存储日志到当前目录下的 carsh.log 中
adb logcat -d *:W > crash.log
# W指的是警告以上日志
# 这个日志文件包含了所有打印的日志,需要自己筛选下崩溃日志,比如搜索 begin、crash、Exception
# 为了更精确的筛选日志,可以加入筛选条件
adb logcat -d *:W grep “包名” >crash.log

二、通过Android Studio

在logcat中查看实时日志,需要选择连接的手机和应用包名

三、通过adb shell dumpsys dropbox命令获取

封装成shell脚本,可以快速打印最新的崩溃日志

#!/bin/bash
# path="/data/system/dropbox" # 在手机这个目录下存储了崩溃日志
newest_time=$(adb shell dumpsys dropbox | grep 'data_app_crash' | awk 'END {print $1,$2}')
adb shell dumpsys dropbox --print ${newest_time}
# echo -e "时间是:${newest_time}"
 

四、获取ANR日志

# 在/data/anr/目录下存储所有了ANR日志
adb pull /data/anr/ ~/Downloads

五、常见日志类别

常见的异常:javaException(runtimeException):

NullPointerException-空指针引用异常

ClassCastException-类型强制转换异常。

IllegalArgumentException-传递非法参数异常。

ArithmeticException-算术运算异常

ArrayStoreException-向数组中存放与声明类型不兼容对象异常

IndexOutOfBoundsException-下标越界异常

NegativeArraySizeException-创建一个大小为负数的数组错误异常

NumberFormatException-数字格式异常

SecurityException-安全异常

UnsupportedOperationException-不支持的操作异常

二:iOS崩溃日志

一、iOS手机上获取崩溃日志

路径:设置 -> 隐私 -> 分析 -> 分析数据

这里可以获取手机上的所有崩溃日志。不过日志是密文,需要在xcode中打开,会自动翻译成明文。

二、在xcode中打开崩溃日志

打开xcode,菜单栏选择window,选择 Devices and Simulators,点击View Device Logs,可以看到日志列表。

在日志中主要看Last Exception Backtrace(即发生崩溃的原因,也是我们要研究的重点) 默认是密文,打开后xcode会翻译成明文,需要等待几秒。

三、通过iTunes同步后获取崩溃日志

路径:

Mac OS X: ~/Library/Logs/CrashReporter/MobileDevice/
可以看到所有和该电脑同步过的设备的崩溃日志(.crash文件)

常用获取Android崩溃日志和IOS崩溃日志的几种方法的更多相关文章

  1. android fragment传递参数_fragment之间传值的两种方法

    在Activity中加载Fragment的时候.有时候要使用多个Fragment切换.并传值到另外一个Fragment.也就是说两个Fragment之间进行参数的传递.查了很多资料.找到两种方法.一种 ...

  2. 【Android】Eclipse自动编译NDK/JNI的三种方法

    [Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...

  3. Java 获取*.properties配置文件中的内容 ,常见的两种方法

    import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...

  4. iOS拨打电话(三种方法)

    iOS拨打电话(三种方法)  查了很多地方的关于iOS程序拨打电话,大都不全,今天我总结了三种方法,各有不同,拿来给大家分享,希望给大家有所帮助 1,这种方法,拨打完电话回不到原来的应用,会停留在通讯 ...

  5. C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法

    主要介绍了C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法,本文分别给出了使用微软语言包.手动编码实现两种实现方式,需要的朋友可以参考下 本文刚发布时,只写了一个实现方式,使用的是微软的语言包,但 ...

  6. ipa包如何打包?ios打包ipa的四种方法分享

      今天带来的内容是ios打包ipa的四种方法.总结一下,目前.app包转为.ipa包的方法有以下几种,下面一起来看看吧!    1.Apple推荐的方式,即实用xcode的archive功能 Xco ...

  7. iOS设置圆角的四种方法

    小小圆角问题,正常情况下,我们不需要过多关心,但当屏幕内比较多的时候,还是有必要了解下性能问题的 一.设置CALayer的cornerRadius 这是最常用的,也是最简单的. cornerRadiu ...

  8. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  9. Android监听点击事件实现的三种方法

    监听点击事件实现的三种方法:1.匿名内部类2.外部类3.直接实现接口 1.匿名内部类: package com.jereh.calculator; import android.content.Con ...

随机推荐

  1. 解释c# Peek 方法

    peek是用来确定你read的文件是否结束了,如果结束了会返回int型 -1 , 举个例子,你可以在输出每一行之前检查一下文件是否结尾,如果没结束就输出此行. StreamReader sr = ne ...

  2. vue修改富文本中的元素样式

    富文本编辑器目前应用很广泛,而有时候我们想要对其中的一些元素的样式进行修改,就会遇到问题. 首先,直接修改是不可行的,因为是用v-html标签进行渲染的,无法直接获取到. 在修改的时候,一般是按标签进 ...

  3. npm 发布 vue 组件

    创建 vue 组件 1.创建vue项目,为了简洁方便,推荐使用webpack-simple构建一个项目 vue init webpack-simple your-project 2.在 src 目录下 ...

  4. UIWebView半透明设置

    在项目中有时候需要弹出活动弹框,由于原生的样式会固定,所以考虑h5显示,这就需要webView的背景色半透明,如图: 让 UIWebView 背景透明需要以下设置

webView.backgroun ...

  5. springboot 关于log4j日志配置

    自动加载配置文件:(1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解.log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log ...

  6. 记录手机端h5页面碰到的一些问题

    关于input光标在手机端偏移 问题根本:不要使用line-height垂直居中. 解决方法:可直接定义height,然后高度由上下padding值撑开. 移动端清除input光标 ios input ...

  7. web性能优化--减少客户端请求数(一)

    多图标合并,用css分隔 设置较长时间的过期时间 合并多个css文件 合并多个js文件 根据域名划分内容 首先介绍一款速度测试工具:webpagetest(填上url,username,passwor ...

  8. springboot 配置quart多数据源

    Springboot版本为2.1.6 多数据源配置使用druid进行配置,数据库使用的为Oracle11g,如果使用的是MySQL,直接将数据库的地址和驱动改一下即可 <parent> & ...

  9. 【leetcode】1227. Airplane Seat Assignment Probability

    题目如下: n passengers board an airplane with exactly n seats. The first passenger has lost the ticket a ...

  10. Swagger+SpringBoot整理

    maven依赖 1 <dependency> 2 <groupId>io.springfox</groupId> 3 <artifactId>sprin ...