Android adb常用命令


1 adb简介

Android 调试桥 (Android Debug Bridge, adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
(1) 客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
(2) 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
(3) 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

详细的工作原理参见谷歌官方指南:
https://developer.android.com/studio/command-line/adb



2 常用命令

1 adb devices //查询已连接设备/模拟器

2 adb start-server //启动adb server(一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起)

3 adb kill-server // 停止adb server

4 adb verion //查看adb版本

5 adb root //以 root 权限运行 adbd。adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。

6 adb unroot //以 普通权限运行 adbd

7 adb remount //已读写方式挂载系分区/system

8 adb devices //查询已经链接的设备,其输出结果有以下三种:
      (1) offline:表示设备未连接成功或无响应。
      (2) device:设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。
      (3) no device:没有设备/模拟器连接。

9 adb get-serialno // 打印设备序列号(和adb devices中的序列号一致)

10 adb wait-for-device //阻塞直到设备在线

10 adb get-state //查看设备状态,其输出结果有以下三种:
      (1) device:设备正常连接
      (2) offline:连接出现异常,设备无响应
      (3) unknown:没有连接设备

11 adb status-window //连续输出设备状态

12 adb bugreport //返回设备bug report相关的所有信息

13 adb [-d|-e|-s ]
      (1) adb -e shell //进入到模拟器中
      (2) adb -d shell //进入到真机中
      (3) adb -s <设备id> shell //进入到指定设备中

14 adb shell svc wifi enable //开启设备WIFI

15 adb shell svc wifi disable //关闭设备WIFI

16 adb reboot //重启设备

17 adb reboot bootloader //设备重启到fastboot模式

18 adb reboot recovery //设备重启到recovery模式

19 adb push <电脑上的文件路径> <设备里的目录> //表示电脑本地文件push到设备中

20 adb pull <设备里的目录> <电脑上的文件路径> //表示设备文件pull到电脑本地上

21 adb install apk的路径 //安装应用apk

22 adb uninstall 包名 //卸载应用apk

23 adb logcat //抓取设备log

24 adb logcat > 本地电脑目录/.log.txt //保存日志到本地电脑目录下的log.txt文件中

25 adb logcat -c //清除log缓存

26 adb logcat | grep "关键词" //筛选出带有关键词的log

注:adb logcat 如果之前,过段时间具体命令又不记得,可以输入adb logcat -help,查看一下一些简单的数据格式。


27 关于adb shell
通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。如果只想执行一条shell命令,就可以采用:adb shell [shell_command],在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。


常见命令有:
(1) adb shell ls 目录 // 查询目录下文件

(2) adb shell ls –al 目录 //查询目录下文件详细信息

(3) adb shell cd 目录 //切换到目录下

(4) adb shell rm 目录路径/文件名 //删除文件目录下的文件

(5) adb shell mkdir 目录名 //创建目录

(6) adb shell touch 文件名 //创建文件

(7) adb shell pwd //查看当前所处的位置

(8) adb shell ps //查看设备进程

(9) adb shell ifconfig //查询设备网关信息

(10) adb shell ifconfig | grep “Mask” //查看设备IP 地址

(11) adb shell dumpsys battery //查看设备电池信息

(12) adb shell dumpsys window displays //查看设备屏幕参数

(13) adb shell getprop ro.build.version.release //查看设备安卓系统版本

(14) adb shell cat /proc/cpuinfo //查看设备CPU信息

(15) adb shell cat /proc/meminfo //查看设备内存信息

(16) adb shell wm size //查看设备屏幕分辨率

(17) adb shell wm density //查看设备屏幕密度

(18) adb shell screenrecord /sdcard/demo.mp4 //屏幕开始录像并且储存到/sdcard中并命名为demo.mp4

(19) adb shell screencap /sdcard/screen.png //可以使用screencap命令来进行设备屏幕截图

(20) adb shell dumpsys window w | grep \/ | grep name= //查询当前手机app正在运行的程序

(21) adb shell am force-stop com.android.camera //关闭camera后台进程,不会清除APP进程在系统中产生的数据(常用)

(22) adb shell pm clear com.android.camera //停止APP进程,并且清除这个APP进程产生的所有数据,相当于reset,相当于卸载重装的效果,一般不建议使用


注: 一般Windows连接设备,使用cygwin软件进行命令行控制。
cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件。Cygwin就是一个windows软件,该软件就是在windows上仿真linux操作系统。
简言之,cygwin是一个在windows平台上运行的 linux模拟环境,使用一个Dll(动态链接库)来实现。这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在Windows下。

关于cygwin软件安装可参见博客:https://blog.csdn.net/u010356768/article/details/90756742






参考资料

[1] https://blog.csdn.net/zhonglunshun/article/details/78362439
[2] https://developer.android.com/studio/command-line/adb


©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页