adb 简介及常用命令

adb 简介及常用命令,第1张

adb全称(Android Debug Bridge),它是一个通用命令行工具,它可以做为Android与PC端连接的一个桥梁,所以adb又称为Android调试桥,用户可以通过adb在电脑上对Android设备进行全面操作,比如安装和调试应用,操作文件的传输等。

首先用户启动一个adb客户端时,此客户端先检查是否存在已运行的adb服务器进程。如果没有,它将启动一个服务器进程,当服务器进程启动时,adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令,使用的adb客户端都使用端口5037与adb服务器进行对话的。接着服务器将所有运行中的模拟器或设备实例进行连接。它通过扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。一旦服务器找到了adb守护程序,将建立一个到该端口的连接。

客户端发送的命令分为三种:

输出状态:

adb install安装原理过程:

Android系统的日志分为两部分:底层的Linux内核日志输出到/proc/kmsg, Android日志输出到/dev/log。Android的Log等级通常有六类,按照日志级别由低到高分别是:Verbose、Debug、Info、Warning、Error、Assert。

Android 调试桥 (adb) 是一种功能多样的命令行工具。它可以让你与设备进行通信,adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限,它是一种C/S架构的程序,包括以下三个组件:

客户端: 主要用于发送命令,adb client在开发机器上运行,你可以通过发出 adb 命令从命令行终端调用客户端,它主要的工作是:解析像:push、shell、install等命令的参数,做必要预处理,然后转移为指令或数据,发送给adb server。

守护程序 (adbd): 是运行在Android设备(真机/模拟器)后台的一个进程,它是由init进程启动的,并且系统一开机就已经启动,它的主要作用是处理来自 adb server的命令行请求,然后获取对应Android设备的信息,再将结果返回给adb server。

服务器 (adb server): 是运行在PC上的一个后台进程,它有两个作用:

当启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行,如果没有,它会先启动服务器进程,服务器在启动后会与绑定和监听PC上的 TCP 端口 5037 ,并处理 adb 客户端发出的命令(所有 adb 客户端通信均通过与PC上端口 5037 建立TCP连接通信)如下图:

然后,adb server会与所有正在运行的设备建立连接,TCP连接方式下,它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器,服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接,请注意,每个模拟器都使用一对按顺序排列的端口(用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口)

通过查看端口,可以看到adb server已在 5037 端口监听 'LISTENING'

Client通过发送指令的方式,给到adb server端,adb server端进行判定,是否需要转发到adbd进行处理。

ADB(Android Debug Bridge)是Android

提供的一个通用的调试工具,借助这个工具,我们可以很好的调试开发的程序,adb.exe在你安装的android的sdk开发包platform-tools目录下。

ADB是一个C/S架构的应用程序,由三部分组成:

1)adb client, 运行在PC上(为DDMS,即IDE工作)

2)adb daemon(守护进程),运行于Emulator(为与Emulator中的VM交互工作);

3)adb server(服务进程),运行在PC(任务管理器上有),管理着adb client和adb

daemon的通信。

server与client通信的端口是是5037,adb

server会与emulator交互的,使用的端口有两个,一个是5554专门用于与Emulator实例的连接,那么数据可以从Emulator转发给IDE控制台了,另一个则是5555,专门与adb

daemon连接为后面调试使用。

adb使用方法:

adb [-d|-e|-s ]

当你发出一个命令,系统启用Android客户端。客户端并不与模拟器实例相关,所以如果双服务器/设备是运行中的,你需要用-d选项去为应被控制的命令确定目标实例。关于使用这个选项的更多信息,可以查看模拟器/设备实例术语控制命令。

1、查询模拟器/设备实例

在发布adb命令之前,有必要知道什么样的模拟器/设备实例与adb服务器是相连的。可以通过使用 devices

命令来得到一系列相关联的模拟器/设备

adbdevices

2、安装应用到模拟器/设备:

你可以使用adb从你的开发电脑上复制一个应用程序,并且将其安装在一个模拟器/设备实例。

像这样做,使用install命令。这个install命令要求你必须指定你所要安装的.apk文件的路径:

adbinstall

例如:Weibo_4.1.1.apk是在我的C盘中,

C:\>adbinstallweibo_4.1.1-apk

3、卸载应用程序:

adbuninstall

注意:卸载软件时,卸载的是包名,后面跟的是包的名字,而不是.APK.

4、从模拟器/设备中拷入或拷出文件:

可以使用adbpull、push命令将文件从模拟器/设备中拷贝出来或从电脑拷入。

adbpull

用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

adbpush

用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

5、启动Linux命令界面shell

adbshell

Android本来就是一个linux操作系统,通过上面的命令,就可以进入设备或模拟器的shell环境中,所以大部分都是linux的命令,如mkdir,ls,netstat,mount

等。

主要介绍几个Android特有的。

Getprop:返回Android的所有系统属性。

Getevent:打印所有的键盘和触摸事件

Logcat:输出日志

LS:用于显示目录内容

6、查看bug报告:

adb bugreport

7、记录无线通讯日志:

一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

adb shell

logcat -b radio

8、获取设备的ID和序列号:

adb get-product

adb get-serialno


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/139287.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-18
下一篇2023-03-18

发表评论

登录后才能评论

评论列表(0条)

    保存