adb的工作原理和命令
1、什么是adb
ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是
Android 设备。ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android 设备。
2、为什么要用adb
运行设备的 shell(命令行) 管理模拟器或设备的端口映射 计算机和设备之间上传/下载文件 可以对设备的应用进行卸载安装等 在 App
遇到 ANR/Crash 等 bug 时,可以通过 ADB 来抓取日志
简而言之,ADB 就是连接 Android 手机与 PC 端的桥梁,所以ADB又称为安卓调试桥(注意:是安卓,不是iOS),可以让用户在电脑上对手机进行全面的操作。
adb包含的部分:
(1)Client端:运行开发机器中,即你的开发电脑,用来发送adb命令
(2)Daemon守护进程:运行在调式设备中,手机或者模拟器,用来接收并执行adb命令;
(3)Server端:同样运行在开发机器中,用来管理Client端和手机的Daemon之间的通信
工作原理:
1、Client端将命令发送给server端
2、server端会将命令发送给daemon端
3、daemon端进行执行
4、将执行结果返回server端
5、server端将结果返回到Client端
命令:
(1)获取包名和界面名
包名:对应应用程序
界面名:对应应用程序的某个界面,也叫做启动名
命令格式:
①Mac/Linux
adb shell dumpsys window |grep mFocusedApp
②Windows
adb shell dumpsys window |findstr mFocusedApp
应用场景:后期,我们告诉计算机到底打开哪一个应用场景和哪一个界面,必须使用的一个写代码的参数
(2)文件传输
①发送文件到手机
命令:
adb push 电脑的文件路径 手机的文件路径
②从手机上拉取文件
命令:
adb push 手机的文件路径 电脑的文件路径`
应用场景:如果希望将电脑上的某个文件,发送到手机上,使用adb push命令,反之,也是从手机上拉取文件到电脑也是如此。
APP的启动时间
命令:
adb shell am start -w 包名/启动名
解释:
①thisTime:该界面的(activity)启动耗时(毫秒)
②TotalTime:应用自身启动耗时=ThisTime+应用Application等资源启动的时间(毫秒)
waitTime:系统启动应用耗时=ToalTime+系统资源启动时间(毫秒)
获取手机日志命令:
adb logcat
使用步骤:
1、打开需要测试的程序
2、找到触发bug的位置
3、使用查看日志命令
4、触发bug
5、获取日志信息
adb的其他命令:
①adb install 路径/xx.apk
安装app到手机上
②adb uninstall
包名 卸载手机上的app,需要指定包名
③adb devices
获取当前电脑已经连接的设备和对应的设备号
④adb shell
进入安装手机内部的Linux的系统命令行中
⑤adb start-server
启动adb服务端,出现bug时可以使用重启服务器,先关闭后再启动
⑥ adb kill-server
停止adb服务端,出现bug时可以使用重启服务器,先关闭后再启动
⑦adb --help
查看adb命令帮助