常见的adb命令
adb
1、简介
Android Debug Bridge简称adb
2、adb 意义
Android sdk 中提供的用于管理模拟器真机状态的工具
3、 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 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。
我们在使用的时候需要安装一个ADB驱动,我的理解是,这个驱动是用来检测安卓设备的,一旦有安卓设备接到USB端口,ADB驱动就会将其挂载到相应的设备列表,这样ADB Sever就可以操作这个设备了,所以ADB驱动是一定需要的。
4、命令
(1)安装install/uninstall
adb install (-r) xxx.apk
adb uninstall (-k) 包名(com.xueqiu.adnroid)
-r: 是否覆盖安装
-k: 是否删除配置文件adb shell pm uninstall -k 包名
-t: 比分直接RUN出来的包是test-onlu的无法安装,推荐使用-t
(2) adb devices
device:正常
offline:设备无响应--一般通过kill-server+adb devices解决
unknow:未知
as(android-studio 以下简称as):emulator-xxxx
三方(mumu,夜神,等):ip:端口
真机:不定长度
adb -s 设备号 其他指令
(3)查看应用列表 packages
显示所有应用:adb shell pm list packages
显示系统自带应用:adb shell pm list packages -f
显示第三方应用:adb shell pm list packages -3
显示特定包名的应用: adb shell pm list packages | findstr(grep) "com.zhaozh.iReaderFree"
(4) 获取包名 activity (顶部activity)
mac/win
adb shell dumpsys activity |grep(findstr) "mFocusedActivity"
(5) 快速启动 start
adb shell am start (-n) <包名>/<avticity名>
验证获取包和应用是否正确,能否快速启动
(6) 强制停止应用 force-stop
adb shell am force-stop <包名> (com.xueqiu.android)
(7) 设备与电脑传输文件 pull/push
电脑->设备
adb push <电脑路径><设备路径>
设备->电脑
adb pull <设备路径><电脑路径>
(8) 设备截图 screencap
截当前图,非长图
adb shell screencap <设备>
adb pull <图地址> <电脑地址>
(9) 日志 logcat
adb logcat -c 清除日志
adb logcat -v time >文件路径 解释:logcat输入的路径文件
(10) 性能参数 top,cpuinfo,meminfo
adb shell top |grep ”包名“
adb shell dumpsys cpuinfo --cpu信息
adb shell dumpsys meminfo --内存信息
(11)设备录屏
adb shell screenrecord /sdcard/demo.mp4