Android adb原理与命令简介

ADB 原理简介

adb(Android debug bridge),意为调试Android设备的桥梁,可以管理、调试Emulator(模拟机)或Device(安卓真机)。
adb是一个C/S架构的应用程序,由三部分组成。

adb client(adb 客户端)      在PC上运行;
adb server(adb 服务端)      在PC上运行;
adb daemon(adb 守护进程)    在Emulator或Device上运行;

1. adb server 与adb client的连接
当adb server启动时,会绑定到本地的5037(tcp)端口,并且通过此端口监听从adb client发来的信息。

2. adb server 与adb daemon的连接
adb server与Emulator或Device连接时使用两个(一组)端口进行。一个奇数的5555,先建立adb server与adb daemon的调试专用的连接;一个为偶数的5554,再建立与Emulator(或Device)实例的连接。

adb server通过扫描5555—5585之间的奇数端口搜索adb daemon,进行adb 连接;而用相应的偶数端口(奇数端口号-1,如5555对应5554)进行Emulator或Device实例的连接。
例如下图,通过5554端口建立的与AVD Emulator的一个实例的控制台连接:
图1
Android adb原理与命令简介_第1张图片

如下图,利用adb start-server命令,开启adb server,adb server就会绑定到本地的5037(tcp)端口;

然后通过adb devices命令,可以看到有一个emulator实例,控制台运行在5554端口。也就是图1所示的控制台;

adb shell命令可以获得一个实例的shell,对应图1的shell,可以像在linux中一样,执行命令。这里shell的通信使用的,就是5555端口。
图2
Android adb原理与命令简介_第2张图片

然后,值得注意的是adb client和adb daemon不能直接连接,必须要通过adb server间接连接。如下图:
Android adb原理与命令简介_第3张图片

ADB 常用命令

.启动服务
adb start-server

.停止服务
adb kill-server

.查看设备运行情况
adb devices

.帮助信息
adb help

.运行adb shell
adb shell

.安装APK
adb install [apkname]

.列出已安装的APK包
adb shell pm list packages

.卸载APK包
adb uninstall [apkpackagename]

.发送电脑文件到ADB设备(AVD)
adb push [localpath] [remotepath]

.下载ADB设备文件到电脑
adb pull [remotepath] [localpath]

.重启adb daemon并获得root权限
adb root

.设备的日志
adb logcat 

.查看bug报告
adb bugrepor

adb shell top       // 查看设备cpu和内存占用情况
adb shell top -m 6     // 查看占用内存前6的app
adb shell top -n 1    // 刷新一次内存信息,然后返回
adb shell procrank     // 查询各进程内存使用情况
adb shell kill [pid]   // 杀死一个进程
adb shell ps        // 查看进程列表
adb shell ps -x [PID]    // 查看指定进程状态
adb shell service list  // 查看后台services信息

你可能感兴趣的:(Android)