ADB 命令的使用在安卓开发中经常会使用,我们应该好好对待它一下。下面都是一些实用性比较高的命令,可以学习了解下。
基础知识:当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,
并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。
服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的
偶数号端口和用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
杀掉adb 进程服务。
adb kill-server
重启adb 进程服务
adb start-server
查看所有连接设备
adb devices
安装apk
adb install test.apk
安装apk,如果存在会先卸载再安装
adb install -r test.apk
安装debug apk,安卓AndroidManifest.xml文件中添加了属性testOnly=true的apk
adb install -t test.apk
卸载apk(com.dou.test为apk包名)
adb uninstall com.dou.test
apk安装到指定设备(8A2X0XSD 为设备的序列号,可通过上面的adb devices 查看)
注:指定某个设备执行命令都可以通过 adb -s 8A2X0XSD 命令来实现
adb -s 8A2X0XSD install test.apk
拉取,如需从设备中复制某个文件或目录(及其子目录),请使用以下命令:
adb pull remote local
实例:
adb pull /sdcard/Android/black C:\Users\LaiYing\Desktop\test.txt
推送,如需将某个文件或目录(及其子目录)复制到设备,请使用以下命令:
adb push local remote
实例
adb push C:\Users\LaiYing\Desktop\test.txt /sdcard/Android/black
查看所有apk包名
adb shell pm list packages
查看所有包含com.dou 的apk包名
adb shell pm list packages com.dou
截屏保存到sdcard 下
adb shell screencap /sdcard/screen.png
录屏,按 Ctrl + C 键停止录屏
adb shell screenrecord /sdcard/demo.mp4
设置最大录制时长(以秒为单位)。默认值和最大值均为 180(3 分钟)
adb shell screenrecord --time-limit time /sdcard/demo.mp4
ping ip 是否通
adb shell ping -c 4 www.baidu.com
查看设备内存使用情况
adb shell procrank
查看应用的内存使用情况(包名或者PID)
adb shell dumpsys com.dou.sample
adb 还有很多功能,但是比较少用也就没写出来了,比如通过am可以查看应用启动性能,通过sqlite 操作数据库,通过pm 查看包体信息等。
如果需要可查看官方文档(https://developer.android.com/studio/command-line/adb?hl=zh-cn#pm)