APP测试——App日志分析

App日志分析

1. ADT、SDK、ADB

ADTAndroid Development Tools) —— Android开发工具

​ 在Eclipse上调用各种与Android有关的插件,便要ADT

SDKSoftware Development Kit) —— 软件开发部件

​ 要用到各种Android平台,好比Android2.3等,便要有SDK

ADBAndroid Debug Bridge) —— Android调试桥

用于连接安卓手机和PC端的桥梁,通过ADB服务,在PC端命令行界面对手机或者模拟器进行全面的操作

2. ADB常见命令

2.1 查看

adb --help	#查看帮助手册
adb devices	#检查连接到电脑的安卓设备,常用的检查命令
adb shell dumpsys activity | find "mFocusedActivity"	#Android 7.0及以下查看前台应用包名
adb shell dumpsys activity | find "mResumedActivity"	#Android 8.0及以上用此命令查看包名
adb logcat	#打印log信息
adb logcat -v time	#log信息显示时间戳
adb logcat -v time > d:\logcat.txt	#把日志信息重定向至d:/logcat.txt

2.2 连接与交互

adb connect ip:port	#通过WiFi进行远程连接手机进行调试,手机和电脑需在同一个局域网上,计算机内部通信地址127.0.0.1,夜神模拟器默认的端口号是62001
adb disconnect ip:port	#断开一个(ip:port)连接
adb shell	#登录设备shell(安卓的底层是Linux)

2.3 文件传输

adb pull <手机文件路径> <本机路径>	#从手机拉取文件到本地电脑
adb push <本地电脑路径> <手机路径>	#从本地推送文件到手机

2.4 安装与卸载

adb install *.apk	#为了快速获取apk的安装包路径,可以直接把apk直接拖到cmd的窗口,安装成功会返回success
adb uninstall <appPackage name>	#卸载需要输入应用包名

2.5 adb连接真机

2.5.1 USB连接调试:

  1. USB数据线连接好电脑,手机打开调试模式
  2. 勾选USB调试模式
  3. 输入adb devices检测手机连接状态

2.5.2 WiFi连接调试:

  1. Android设备与将运行ADB的电脑连接到同一个局域网
  2. USB连接手机&电脑
  3. adb devices测试是否连接成功,出现设备列表即可
  4. adb tcpip 5555,然后断开USB连接
  5. 通过手机状态信息,查看手机IP地址
  6. adb connect <IP地址>,若出现connected to <IP地址>:5555 说明连接成功
  7. adb devices检测连接

3. logcat日志文件分析

日志信息的组成

11-30 09:42:17.941 E/android.os.Debug( 2889): failed to load memtrack module: -2
11-30 09:42:17.941 I/Radio-JNI( 2889): register_android_hardware_Radio DONE
11-30 09:42:17.945 D/AndroidRuntime( 2889): Calling main entry com.android.commands.am.Am
11-30 09:42:17.948 D/AndroidRuntime( 2889): Shutting down VM
11-30 09:42:22.433 W/System  ( 2053): Ignoring header Cookie because its value was null.

由5个部分组成

  1. 日志的时间:如11-30 09:42:17.941
  2. 优先级:在Android中,日志的优先级从低到高分为以下几种
    • V —— Verbose(最低级别,开发调试中的一些详细信息,仅在开发中使用,不可再发布产品中输出)
    • D —— Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)
    • I —— Info(信息,一般提示性的消息)
    • W —— Warning(警告
    • E —— Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
  3. 标签(tag):标明日志发起者和方便日志的过滤筛选,如上图中/(之间的字段,android.os.DebugRadio-JNI
  4. PID(进程ID):如上图中的( 2889)( 2053)
  5. 日志正文::.之间的那一串字符,如failed to load memtrack module: -2register_android_hardware_Radio DONE

4. 发生crash如何分析

发生crash时,adb logcat获取日志分析:

  1. 搜索exception关键字,根据时间、包名定位
  2. 搜索fatal/caused by关键字
  3. 搜索force finish

找到对应的日志,贴到bug里,发给开发

5. 程序ANR的简述与分析

5.1 ANR日志报文

ANRApplication Not Responding) —— 应用无响应

当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框,如下图
image

  • 为用户在主线程长时间被阻塞时提供处理交互,提高用户体验
  • Android系统一种自检机制

日志报文如下图

image

5.2 通过Trace文件进行分析

trace.txt 存放在/data/anr

image

只能记录最后一次发生的ANR信息

5.3 通过Dropbox分析

  • 通过dropbox可以手机系统一段时间内的异常信息(包括ANR、carsh)
  • /data/system/dropbox是dropbox指定的文件存放位置

image

posted @ 2021-11-30 22:34  JohnChow2  阅读(544)  评论(0)    收藏  举报