App测试进阶之adb
adb介绍adb组成adb环境部署adb的操作使用删除乱码文件连接设备adb常用命令1adb常用命令2
App日志文件分析logcat缓冲区logcat日志文件分析(实操部分1)(实操部分2)查看异常文件
adb介绍
adb(Android debug bridge)是安卓sdk(一个软件开发套件)的一个工具adb是用来连接安卓手机和pc端的桥梁,能让用户在电脑上对手机进行全面的操作adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能
adb组成
客户端(client) 运行自己的电脑上,可通过adb命令调用起一个客户端,其他Android工具服务器(server) 运行在自己电脑上,负责管理客户端和守护进程进行通信守护进程(daemon) 运行在模拟器或者Android设备的后台 打开Windows命令行,输入adb命令验证
adb环境部署
下载adb并解压(注意:如果在D盘解压则需要在Windows命令行中进入到D盘执行) 这里我是解压到D盘,得到adb文件 打开Windows命令行,进入到d盘 或者直接在文件夹上方输入cmd,此时命令行会直接指向该文件路径 查看adb版本号 配置环境变量可以使adb在任何命令行下的路径都可以使用 在Path变量的值最后面加上英文分号和adb.exe的路径 在Windows命令行中查看adb版本号检验adb部署环境是否成功
adb的操作使用
删除乱码文件
(由于下方使用adb push命令把本地中文名称的文件推送到了手机上,所以有了以下根据文件节点号来删除文件的方法) 11. 查看文件节点号 12. 根据文件节点号删除
连接设备
查看夜神模拟器端口号 连接夜神模拟器
adb常用命令1
adb devices 检测连接到电脑的安卓设备 adb pull <手机路径> <本机路径> 从手机中拉取信息放到本地电脑上 adb push <本机路径> <手机路径> 从本地推送信息到手机上(/sdcard是目录,如果上传失败需写成/sdcard/) adb shell 登录设备shell(命令行的人机界面),ll,ls命令都可以用,进入Linux命令环境相当于执行远程命令 adb logcat 打印日志 adb logcat > <输出本地路径> 输出日志到本地 (注意:输出时需要写上输出的日志名称,如果不存在则会自动新建)
adb常用命令2
adb install xxx.apk 安装安装包,可直接拖到cmd窗口获取安装地址 adb install -r xxx.apk 保留数据和缓存文件,重新安装apk adb shell dumpsys activity | find “mFocusedActivity” 查询当前正在运行的应用程序包名(注意要打开应用程序才能查询,后台的应用程序需清除) adb shell pm list packages 查看当前系统里所有安装的应用程序 adb uninstall 应用程序对应的包名 卸载应用 adb uninstall -k 应用程序对应的包名卸载应用但保留数据和缓存文件 adb connect/disconnect 通过wifi进行远程连接真实手机进行调试(手机和pc连接的必须是同一个路由器在同一个内网中) 1)将手机连接到pc端 2)输入命令adb devices检测设备 3)输入命令adb tcpip 5555 确定手机端和pc端的通讯端口号 4)拔掉手机,输入adb connect 手机ip地址远程连接 5)最后可使用adb disconnect 取消远程调试
App日志文件分析
安卓日志系统里提供了记录和查看系统调试的功能,日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可通过logcat命令来查看和使用。在通常情况下,日志记录器缓冲区大小默认是256K,写满时最旧的日志会被删除给新的日志留内存空间。
logcat缓冲区
目前定义了四个log缓冲区:
Radio:输出通信系统的logSystem:输出系统组件的logEvents:输出event模块的logMain:所有java层的log(不属于上面的log)
输出通信系统的log:adb logcat -b radio 不指定缓冲区的情况下,默认输出是System和Main缓冲区的log (一般我们直接使用默认的就可以了)
logcat日志文件分析
日志文件由五部分组成:
写下日志时的时间,如 07-08 14:40:44.004优先级,在安卓中,日志的优先级从低到高有以下几种:
V(Verbose)啰嗦,开发调试中的一些详细信息,仅在开发中使用不可在发布产品中使用
D(Debug)调试,用于调试的信息,可以在发布产品中关闭,较常见I(Info)信息,一般提示性的消息W(Waming)警告E(Error)错误,已经出现可影响运行的错误,比如应用crash时输出的日志
标签(tag),标明日志发起者和方便日志的过滤筛选,如 PackageManagerPID(进程ID),如 1747正文,日志的主体内容 例:
(实操部分1)
运行程序产生crash 输出最新日志 使用Notepad++打开日志,通过在当前文件中查找crash来查找刚才出现的错误日志(一般FATAL EXCEPTION都是error) 开始(E开头) 结束(W结束)
(实操部分2)
ANR:应用无响应,当操作在一段时间内系统无法处理时,系统层面会弹出一个ANR对话框 点击产生ANR 输出最新日志 使用Notepad++打开日志,通过在当前文件中查找ANR in来查找刚才出现的错误日志 可以在手机文件中找到ANR文件 进入到手机命令行模式 进入到日志中查找的文件路径 在doc中查看文件因为内存有限所以会有缺失,这时候我们可以把这个文件拉取出来到本地查看 (时间有差异是因为是两个不同的模块,写入系统不会同步的写,如果出现了ANR错误一般要提交这两个文件–logcat和traces.txt)
查看异常文件
拉取dropbox文件夹到本地上 如何知道文件的先后产生顺序–使用ls -l查看文件创建时间