测试常见的adb命令

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

adb命令的使用是移动端测试必备的技能,所以在这里简单介绍下几个常见的命令


一、常见的关于adb问题

1.最常出现的问题就是这个“adb不是内部或外部命令,也不是可运行的程序或批处理文件”,80%通常是环境配置的问题。

在这里插入图片描述
解决办法:
第一种办法是删除之前的adb,重新下载adb的压缩包解压。最后cmd中再次输入adb version查看adb是否已经安装配置成功。

第二种办法是因为下载好了Andriod SDK,其中是自带adb命令,出现如上情况,可直接将 Android SDK的绝对路径放到环境变量中path中去(保证以后不移动位置即可),kill-server和start-server后再次输入adb version查看adb是否已经安装配置成功

2.windows下自己下载的adb版本与夜神模拟器提示版本不匹配。
解决办法:
<1>. 将 Android SDK里面的adb复制,进入到夜神模拟器的安装目录–>bin
<2>.替换夜神里面的adb.exe,还需要把nox_adb.exe也需要替换
<3>.输入adb devices命令检测

二、常见的adb命令

1.adb部署

adb version展示了当前安装的adb版本号以及adb安装运行的位置。
adb version

  1. 解压Android SDK2. 进入到系统环境变量配置页面
  2. 添加环境变量ANDROID_HOME,变量值SDK所在路径:D:\software\android-sdk-windows-appium
  3. 进入Path里面,追加三行配置:%ANDROID_HOME%\platform-tools,%ANDROID_HOME%\tools,%ANDROID_HOME%\build-tools\28.0.33.
  4. 再在命令行窗口输入adb version验证

2.adb help

1.adb help(adb 帮助手册,可以查看命令的-a,-d等的含义,版本号等)
adb help

3.adb devices

adb devices(查看连接到pc端的安卓设备-夜神模拟器)
adb devices

4.adb shell

adb shell(进入shell模式)
adb shell

5.adb pull

adb pull <拉取手机路径> <本机路径>(把设备中的截图放到本机上)
adb pull

6.adb push

adb push <本机路径> <手机路径>(本机图片都放置设备cdcard文件的图片文件当中)
adb push

7.adb install

adb install D:\APK\包.apk(安装apk应用),返回success即为安装成功
adb pull

8.adb uninstall

adb uninstall 包名(卸载apk应用),返回success即为卸载成功
adb uninstall

9.adb shell dumpsys activity | find “mFocusedActivity”

adb shell dumpsys activity | find “mFocusedActivity”(查询前台应用的包名,使用安卓版本为7.0以下的版本),Android7.0版本以上需要用adb shell dumpsys activity | find "mResumedActivity"来查询前台应用的包名
start

9.adb kill-server与adb start-server

终止adb服务/启动服务
kill and start

10.adb shell am start -n 包名/启动入口

启动应用(启动app)start

12.adb shell pm clear 包名

清除数据缓存
clear

13.adb shell input tap X Y

点击坐标(x,y)点的应用,例如(807,508)取整数即可
click

14.adb logcat

adb logcat …(查询日志分析)
例:adb logcat -b [main] > D:\log\log_main.txt
logcat
logcat缓冲区:因为每时每刻android输出的日志量非常大,所以会把输出的log内容输出到不同的缓冲区中。
·Radio:输出通信系统的log(硬件模块:wifi,4G,3G,NFC,蓝牙等)
·System:输出系统组件的log(权限高,运行于后台的)
·Events:输出event模块的log(事件模块:触摸事件,点击事件等)
·Main:所有java层的log(不属于上三层的log)
输出的模块语句模型:adb logcat -v radio/system/events/main,查看对应的日志

logcat分析:
例:
04-02 14:15:26.797 1751 1751 I vold : Vold 3.0 (the awakening) firing up
04-02 14:15:26.797 1751 1751 V vold : Detected support for: exfat ext4 iso9660 ntfs vfat

1.日志时间:
2.优先级:
* V-verbose(最低级别,开发调试的一些详细信息,线上版本的话建议关掉,其中有性能上的问题)
* D-debug(调试,调试信息,在发布产品中建议关闭)
* I-info(信息,一般提示性信息)
* W-warning(警告信息,优先级高)
* E-error(重点!错误信息,可能出现了影响运行的错误信息,比如在应用crash时输出的日志)
3.标签(tag):标明日志的发起者和方便日志的过滤筛选,开发自己定义的
4.PID(进程ID):系统分配的进程号
5.正文:日志的主体内容

(常见的线上版本重点问题)Crash和ANR
Crash:崩溃问题→一般提示框内容“很抱歉,某某应用已定制运行”等相似内容
一般步骤:
1.既然出现崩溃,那么就已经产生了相应的日志,使用adb的命令去抓取日志,adb logcat -v time > D:\log\logcat_crash.txt打印至指定位置.
2.使用Notepad++,查找关键词“Crash”或者“FATAL EXCEPTION”,个人比较倾向后者,使用起来最为保险,他表示出现了严重的错误,开头信息便是Fatal excetion
3.从这个Fatal excetion往下的E(error)级别的信息便是出现问题的日志。提交给开发就可以了。若实在是找不到问题所在,把日志直接提交给开发,求助并解决问题。
输出:Crash问题一般会提交一个文件:logcat_xx.txt

ANR:Application Not Responding,无响应操作在一段时间内无处理时弹出ANR的对话框。
一般步骤:
1.与Crash类似,在Notepad++搜索时搜索“ANR in”
2.内容:应用包名,PID,load,cpu(使用率)等
3.因为开发人员需要找到方法的调用栈,所以还需在文件中找到“Wrote stack traces to ‘data/anr/traces.txt’”,一般在关键词ANR in 的上方。
4.在windows中的docs下cd到该文件处,使用cat traces.txt可以查看该文件,但是会有获取不全的问题,所以一般使用adb pull /data/anr/traces.txt D:\log拉取出来放置指定位置再进行操作。两个文件显式的时间会不一样,因为系统写入时间,存在几秒的误差导致两文件时间不同步,为确保日志是有效的,误差时间一般只有几秒的误差是可接受的。
输出:ANR问题一般会提交两个文件:logcat/traces.txt,一般我们个人的手机没有root权限,无法进入到系统当中去,所以直接使用adb pull把想要的日志文件直接拉取出来就可以了,无需root权限。

在工作当中发现了如果出现多次的ANR事件,日志只会保留最近的ANR日志(使用dropbox目录,所有的crash,anr信息可以全部的获取,但是手机厂商会对原生系统进行修改,可能不会有dropbox这个目录存在)
解决办法:
1.adb shell进入shell模式cd data目录下面
2.cd system→cd dropbox目录当中
3.ls查看目录下面的发生anr,crash问题的文件(1)SYSTEM-BOOT(2)data-anr-anr(3)data-app-crash这几种文件,关键词有“app”的是安装的应用所返回的问题记录的信息。
4.回到docs,把这些文件拉取出来(adb pull),若要在提bug时记录这些日志产生的先后时间,可以在dropbox下使用ls -l来显示这些文件生成的时间来判断先后。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值