APP测试——App日志分析
App日志分析
1. ADT、SDK、ADB
ADT(Android Development Tools) —— Android开发工具。
在Eclipse上调用各种与Android有关的插件,便要ADT
SDK(Software Development Kit) —— 软件开发部件
要用到各种Android平台,好比Android2.3等,便要有SDK
ADB(Android 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连接调试:
- USB数据线连接好电脑,手机打开调试模式
- 勾选USB调试模式
- 输入
adb devices检测手机连接状态
2.5.2 WiFi连接调试:
- Android设备与将运行ADB的电脑连接到同一个局域网
- USB连接手机&电脑
adb devices测试是否连接成功,出现设备列表即可adb tcpip 5555,然后断开USB连接- 通过手机状态信息,查看手机
IP地址 adb connect <IP地址>,若出现connected to<IP地址>:5555 说明连接成功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个部分组成
- 日志的时间:如
11-30 09:42:17.941 - 优先级:在Android中,日志的优先级从低到高分为以下几种
- V —— Verbose(最低级别,开发调试中的一些详细信息,仅在开发中使用,不可再发布产品中输出)
- D —— Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)
- I —— Info(信息,一般提示性的消息)
- W —— Warning(警告)
- E —— Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
- 标签(tag):标明日志发起者和方便日志的过滤筛选,如上图中/和(之间的字段,
android.os.Debug、Radio-JNI - PID(进程ID):如上图中的
( 2889)、( 2053) - 日志正文::和.之间的那一串字符,如
failed to load memtrack module: -2、register_android_hardware_Radio DONE
4. 发生crash如何分析
发生crash时,adb logcat获取日志分析:
- 搜索exception关键字,根据时间、包名定位
- 搜索fatal/caused by关键字
- 搜索force finish
找到对应的日志,贴到bug里,发给开发
5. 程序ANR的简述与分析
5.1 ANR日志报文
ANR(Application Not Responding) —— 应用无响应
当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框,如下图
- 为用户在主线程长时间被阻塞时提供处理交互,提高用户体验
- Android系统一种自检机制
日志报文如下图

5.2 通过Trace文件进行分析
trace.txt 存放在/data/anr

只能记录最后一次发生的ANR信息
5.3 通过Dropbox分析
- 通过dropbox可以手机系统一段时间内的异常信息(包括ANR、carsh)
- /data/system/dropbox是dropbox指定的文件存放位置



浙公网安备 33010602011771号