一、adb简介
二、adb环境搭建
三、adb连接Android设备步骤
1、USB数据线连接
2、WIFI远程连接
四、adb shell命令
1、简介
2、常用adb shell命令
3、crash(崩溃)
一、adb简介
Android 调试桥 (ADB,Android Debug Bridge) 是Android SDK里的一个工具。可看成一个客户端-服务器程序,其中客户端是用来操作的电脑,服务器端是android设备。
通过ADB服务,可以直接在PC端操作管理android模拟器或者真实的android设备,说白了ADB就是安卓的debug工具。
ADB的主要功能有:
- 运行设备的shell(命令行)
- 管理模拟器或设备的端口映射
- 计算机和设备之间上传/下载文件
- 将本地apk软件安装至模拟器或android设备
ADB的组成主要有三部分:
- 客户端client:运行在你的电脑上,你可以通过shell来调用起一个客户端。其他Android工具,例如:ADT插针、DDMS都可以创建出一个客户端。【adb在mac或者linux上都可以使用;需要搭建环境变量才能使用】
- 服务器server:运行在你电脑的后台,负责管理client和daemon进行通信。
- 守护进程daemon:运行在模拟器或者Android设备的后台。
二、adb环境搭建
adb调试桥是Android SDK里的一个工具,Android SDK是安卓系统软件的开发工具包。作为新手推荐使用安卓开发新手集成包:adt-bundle (谷歌给安卓开发打包的一个环境)。adt-bundle环境搭建相对于简单,而且app自动化测试的环境也可用。
具体的环境搭建步骤可参考另外一篇说明《adt-bundle环境搭建》。
三、adb连接Android设备步骤
1、USB数据线连接
Android手机通过adb与PC端连接时,有几个前提条件:
1.1、手机驱动
Android手机通过USB数据线连接PC端后,需要安装驱动。一般会自动安装,开启开发者选项和USB调试后“我的电脑”里面能够显示连接的手机,并可查看其目录就没问题。
当PC端提示驱动安装失败时,需要在PC端安装360手机助手等连接应用,通过连接应用安装好手机驱动环境后,要将360手机助手等应用卸载,因为这些应用与adb会用同一端口。
1.2、手机设置
◆手机需要开启开发者选项和USB调试。
开启开发者选项的过程如下,设置—>关于手机—>连续点击7次“版本号”,然后在设置—>系统中出现开发者选项,开启即可。
在开发者选项页面,同时开启“USB调试”。
有的Android系统版本手机在开启USB调试时,有弹窗提示是否允许USB调试,一定要选择“确定”。还有的Android系统版本手机在开启USB调试时,询问您是否接受允许通过此计算机进行调试的 RSA 密钥,也需要选择同意。
◆最后一步,在开发者选项页面,点击“选择USB配置”然后选择“MTP(多媒体传输)”。
1.3、验证连接
PC端通过cmd命令提示符页面,输入adb devices然后回车,看到如下图结果,表示adb连接Android设备成功。
2、WIFI远程连接
Android手机通过wifi连接电脑运行adb,可实现远程调试。具体步骤如下:
1.1、连接准备
按照上面介绍的Android手机通过USB数据线连接的步骤完成配置,并连接成功。
1.2、通过IP连接设备
◆将Android手机连接的WIFI,与运行adb的PC端连接的网络处于同一局域网。
◆Android手机通过USB数据线连接成功后,在cmd命令提示符页面输入:adb tcpip 5555 让设备在5555端口监听TCP/IP连接。
◆查找手机的IP地址,在设置—>WLAN—>点击所连接的WiFi,可以找到设备的IP,如下图:
◆拔掉USB数据线。
###注意,拔掉USB数据线后要确保开发者选项和USB调试是开启状态;且“选择USB配置”是勾选“MTP(多媒体传输)”状态。
◆PC端在cmd命令提示符页面输入:adb connect <手机IP> 出现下图所示结果,即表示连接成功。
1.3、验证连接
PC端通过cmd命令提示符页面,输入:adb devices然后回车,看到如下图结果,表示adb连接Android设备成功。
1.4、断开连接
Wifi远程连接成功后,想要关闭连接,PC端通过cmd命令提示符页面,输入:adb disconnect <手机IP> 即可关闭adb连接。
四、adb shell命令
1、简介
安卓系统是基于Linux系统开发,也就支持常见的Linux的命令,这些命令都保存在手机 “/system/bin” 的目录下,我们连接手机就可以使用命令 adb shell 来执行这些命令。
使用adb shell命令的前提是,Android设备已经通过adb与PC端建立连接。
2、常用adb shell
1.1、进入adb shell命令窗口
◆在PC端通过cmd命令提示符页面,输入:adb shell 进入shell命令窗口。
◆可以使用cd命令进行目录切换。
输入cd sdcard可进入手机内部存储空间,再输入ls可获取当前的所有目录内容。
◆通过adb shell 进入的shell命令窗口,常使用的Linux命令还有:
- cd:切换路径/目录;
- pwd:显示当前路径;
- ps: 显示当前系统正在运行进程;
- kill:杀死某一个进程;语句: kill -9 <进程号> (-9表示强制杀死)
◆要退出shell操作,需要输入exit。如下图:
1.2、从Android设备提取文件至PC端
◆使用adb pull可以将手机中的文件拉取到PC端,命令格式如下:
adb pull <文件路径> <本机路径> 注意,路径之间的空格
实际操作中一般在adb shell 进入的shell命令窗口中找到需要拉取的文件和路径,然后exit退出shell命令窗口,执行adb pull命令。
例:adb pull /sdcard/server.log F:\test
1.3、将PC端的文件推送至Android设备
使用adb push 可以将PC端的文件推送至Android手机,命令格式如下:
adb push <文件路径> <手机路径> 注意,路径之间的空格
例:adb push F:\test\server.log /sdcard/
推送成功后,通过cd切入sdcard目录,然后输入ls可查看server.log文件
1.4、查询App包名
在Android设备中打开某个App,然后在cmd命令提示符页面输入如下命令,即可查询到包名:
1.4.1、Android 8.0系统以下用:
adb shell dumpsys activity | find "mFocusedActivity"
1.4.2、Android 8.0系统以上用:
adb shell dumpsys activity | find "mResumedActivity"
包名是应用软件在Android系统中的一种标记。
在出现的查询结果中,u0与/中间的一串是该应用的包名,如下图:
1.5、将PC端的.apk包安装至Android设备
adb install xxx.apk 将PC端存放的.apk装入Android设备。
adb install -s xxx.apk 将PC端存放的.apk装入Android设备的sdcard中。
注意:xxx.apk是该文件PC端所在的绝对路径,在PC端拖动xxx.apk至cmd窗口,即可自动填充绝对路径。
命令输入正确后,回车即安装,提示:success表示安装成功。
1.6、通过adb删除Android设备的App
adb uninstall <应用包名> 该命令在PC端通过adb删除Android设备的App。
输入命令后回车,提示:success表示应用删除成功。
3、定位到crash(崩溃)异常信息
App在运行时偶遇崩溃,可以使用命令adb logcat从Android设备缓存区拉取日志,筛选出的日志有助于定位Bug。
要使用这个命令,必须有超级管理员权限,或者手机已经root。
命令格式:
adb logcat –v > d:\log.txt 将日志保存至D盘
adb logcat –v time > d:\log.txt 拉取的日志自带时间
日志导出后,通过App的包名筛选出有用的日志。然后在导出的日志中搜索‘FATAL EXCEPTION’关键字就可以定位到关键日志信息。
需要提交的日志:FATAL EXCEPTION 到 Force finishing。
具体步骤:
1)在发现运行的App出现崩溃等情况时,进入cmd窗口输入命令:
adb logcat –v time > F:\log.txt 如下图:
2)日志导出过程中,等几分钟在执行Ctrl+C,终止日志导出。
3)在PC端打开导出的日志,通过App的包名筛选出有用的日志。
4)日志中搜索“FATAL EXCEPTION”关键字就可以定位到关键日志信息。
5)将关键字“FATAL EXCEPTION”到 “Force finishing”的日志信息筛选出来,提交给解决Bug的人员。
例如: