区块链技术博客
www.b2bchain.cn

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令求职学习资料

本文介绍了Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

前言

你好,很高兴见到你!👋

今天洛杉矶湖人队以 4:2 的大比分战胜迈阿密热火队,赢得总冠军,让我们大声地喊出那五个字:湖人总冠军!👏👏👏

本篇是 Android Detail 专栏 工具篇的第二篇。

相信大多数开发者都使用过 adb 命令以及adb ps 命令。网上大多数介绍 adb ps 命令参数使用的文章内容已经过时,这是因为新版本 Android 使用的是 toybox 中的命令。

阅读本文,您将了解以下内容:

  • adb 的组成结构
  • adb 的工作原理
  • toybox 中的 ps 命令的使用

Android Debug Bridge(adb)

Android Debug Bridge (adb) 是一个帮助用户与设备进行通信的命令行工具,使用它可以执行各种设备操作。例如:安装、调试应用。

它是一个 C/S 架构的程序,主要由三部分组成:电脑上的 adb clientadb server 和 设备(手机、平板、模拟器等)上的 adb daemon。它被设计为可以多对多连接工作,即一台电脑可以连接多个设备,一个设备也可连接多个电脑。

这里的「电脑」用 「开发者的开发计算器」 描述更准确些。

为了描述方便,后文均采用「开发机器」描述 adb clientadb server 运行的设备,使用「设备」描述 adb daemon 运行的设备。

  • 客户端(client)

    用于发送命令。

    client 在开发机器上运行。用户可以通过发出 adb 命令从命令行终端调用 client。

  • 守护程序(daemon adbd)

    用于在设备上运行命令。

    adbd 在设备上作为后台进程运行,它负责连接 adb server。

  • 服务端(server)

    用于管理 client 与 adbd 之间的通信。

    server 在开发机器上作为后台进程运行。检测 USB 接口连接或者移除设备。adb server 维护着一个「已连接的设备的列表」,并且为每一个设备标记了一个状态:offline,bootloader,recovery 或者 online

adb 工作原理

当用户启动某个 adb client 时,该 client 会先检查是否有 adb server 进程正在运行。如果没有,它会启动 server 进程。server 在启动后会与本地 TCP 端口 5037 绑定,并监听 adb client 发出的命令——所有 adb client 均通过端口 5037 与 adb server 通信。

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

模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推

如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。

上述内容摘自 官方文档

adb 相关源码在 system/core/adb 下。

adb shell

熟悉 Linux 的开发者可能对 shell 并不陌生,Linux 常用的命令存放在 /bin 目录中,例如 lsrm 以及后文即将介绍的 ps 等等。

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

/bin 下的文件

adb shell 允许用户执行 设备 上 /system/bin 下的命令:

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

通过 adb shell 进入手机设备 system/bin 目录 执行 ls 命令

例如 Android Detail:工具篇 —— Android 世界的活点地图 dumpsys 中提到的 dumpsys 命令就在该目录中。

adb shell 常用的命令有 :

  • am(activity manager)

    可执行 启动 activity,service,broadcast,杀死进程等操作。

  • pm(package manager)

    可以执行 安装/卸载 应用,输出 apk 路径等操作。

  • dpm(device policy manager)

    可以执行设备管理器相关命令,激活设备管理员,设置设备管理器 owner 等。

  • screencap (截屏)

    使用该命令可以快速截屏并将图片保存至指定路径,截屏过程用户无感知。

该目录下还有一个 ps 命令,ps(process status)命令用于示当前进程的状态,在 linux 中这是一个非常常用的命令,但它不是本文的重点,下面我们主要介绍 adb shell ps 命令。

网上介绍的 adb shell ps 命令的参数不好使?

网上介绍 adb shell ps 命令 参数的文章很多,但尝试过后你会发现很多参数与文章描述的并不相符,甚至有的参数不存在。

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 -p 提示后面需要具体参数,与文章描述不符

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 -x 提示不存在

这是由于旧版本 Android 使用 toolbox,新版本使用 toybox。

什么是 toybox 以及为什么使用 toybox 替换 toolbox,可以从 这里 找到答案。

验证 ps 使用的是哪个,可以在 system/bin 目录下执行 ls -al ps

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 toybox

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 toolbox

后文我们主要介绍 toybox 的 ps 命令的使用。

adb shell ps 命令的使用

toybox 的 ps 命令功能更强大也更全面。

前言

你好,很高兴见到你!👋

今天洛杉矶湖人队以 4:2 的大比分战胜迈阿密热火队,赢得总冠军,让我们大声地喊出那五个字:湖人总冠军!👏👏👏

本篇是 Android Detail 专栏 工具篇的第二篇。

相信大多数开发者都使用过 adb 命令以及adb ps 命令。网上大多数介绍 adb ps 命令参数使用的文章内容已经过时,这是因为新版本 Android 使用的是 toybox 中的命令。

阅读本文,您将了解以下内容:

  • adb 的组成结构
  • adb 的工作原理
  • toybox 中的 ps 命令的使用

Android Debug Bridge(adb)

Android Debug Bridge (adb) 是一个帮助用户与设备进行通信的命令行工具,使用它可以执行各种设备操作。例如:安装、调试应用。

它是一个 C/S 架构的程序,主要由三部分组成:电脑上的 adb clientadb server 和 设备(手机、平板、模拟器等)上的 adb daemon。它被设计为可以多对多连接工作,即一台电脑可以连接多个设备,一个设备也可连接多个电脑。

这里的「电脑」用 「开发者的开发计算器」 描述更准确些。

为了描述方便,后文均采用「开发机器」描述 adb clientadb server 运行的设备,使用「设备」描述 adb daemon 运行的设备。

  • 客户端(client)

    用于发送命令。

    client 在开发机器上运行。用户可以通过发出 adb 命令从命令行终端调用 client。

  • 守护程序(daemon adbd)

    用于在设备上运行命令。

    adbd 在设备上作为后台进程运行,它负责连接 adb server。

  • 服务端(server)

    用于管理 client 与 adbd 之间的通信。

    server 在开发机器上作为后台进程运行。检测 USB 接口连接或者移除设备。adb server 维护着一个「已连接的设备的列表」,并且为每一个设备标记了一个状态:offline,bootloader,recovery 或者 online

adb 工作原理

当用户启动某个 adb client 时,该 client 会先检查是否有 adb server 进程正在运行。如果没有,它会启动 server 进程。server 在启动后会与本地 TCP 端口 5037 绑定,并监听 adb client 发出的命令——所有 adb client 均通过端口 5037 与 adb server 通信。

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

模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推

如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。

上述内容摘自 官方文档

adb 相关源码在 system/core/adb 下。

adb shell

熟悉 Linux 的开发者可能对 shell 并不陌生,Linux 常用的命令存放在 /bin 目录中,例如 lsrm 以及后文即将介绍的 ps 等等。

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

/bin 下的文件

adb shell 允许用户执行 设备 上 /system/bin 下的命令:

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

通过 adb shell 进入手机设备 system/bin 目录 执行 ls 命令

例如 Android Detail:工具篇 —— Android 世界的活点地图 dumpsys 中提到的 dumpsys 命令就在该目录中。

adb shell 常用的命令有 :

  • am(activity manager)

    可执行 启动 activity,service,broadcast,杀死进程等操作。

  • pm(package manager)

    可以执行 安装/卸载 应用,输出 apk 路径等操作。

  • dpm(device policy manager)

    可以执行设备管理器相关命令,激活设备管理员,设置设备管理器 owner 等。

  • screencap (截屏)

    使用该命令可以快速截屏并将图片保存至指定路径,截屏过程用户无感知。

该目录下还有一个 ps 命令,ps(process status)命令用于示当前进程的状态,在 linux 中这是一个非常常用的命令,但它不是本文的重点,下面我们主要介绍 adb shell ps 命令。

网上介绍的 adb shell ps 命令的参数不好使?

网上介绍 adb shell ps 命令 参数的文章很多,但尝试过后你会发现很多参数与文章描述的并不相符,甚至有的参数不存在。

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 -p 提示后面需要具体参数,与文章描述不符

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 -x 提示不存在

这是由于旧版本 Android 使用 toolbox,新版本使用 toybox。

什么是 toybox 以及为什么使用 toybox 替换 toolbox,可以从 这里 找到答案。

验证 ps 使用的是哪个,可以在 system/bin 目录下执行 ls -al ps

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 toybox

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 toolbox

后文我们主要介绍 toybox 的 ps 命令的使用。

adb shell ps 命令的使用

toybox 的 ps 命令功能更强大也更全面。

前言

你好,很高兴见到你!👋

今天洛杉矶湖人队以 4:2 的大比分战胜迈阿密热火队,赢得总冠军,让我们大声地喊出那五个字:湖人总冠军!👏👏👏

本篇是 Android Detail 专栏 工具篇的第二篇。

相信大多数开发者都使用过 adb 命令以及adb ps 命令。网上大多数介绍 adb ps 命令参数使用的文章内容已经过时,这是因为新版本 Android 使用的是 toybox 中的命令。

阅读本文,您将了解以下内容:

  • adb 的组成结构
  • adb 的工作原理
  • toybox 中的 ps 命令的使用

Android Debug Bridge(adb)

Android Debug Bridge (adb) 是一个帮助用户与设备进行通信的命令行工具,使用它可以执行各种设备操作。例如:安装、调试应用。

它是一个 C/S 架构的程序,主要由三部分组成:电脑上的 adb clientadb server 和 设备(手机、平板、模拟器等)上的 adb daemon。它被设计为可以多对多连接工作,即一台电脑可以连接多个设备,一个设备也可连接多个电脑。

这里的「电脑」用 「开发者的开发计算器」 描述更准确些。

为了描述方便,后文均采用「开发机器」描述 adb clientadb server 运行的设备,使用「设备」描述 adb daemon 运行的设备。

  • 客户端(client)

    用于发送命令。

    client 在开发机器上运行。用户可以通过发出 adb 命令从命令行终端调用 client。

  • 守护程序(daemon adbd)

    用于在设备上运行命令。

    adbd 在设备上作为后台进程运行,它负责连接 adb server。

  • 服务端(server)

    用于管理 client 与 adbd 之间的通信。

    server 在开发机器上作为后台进程运行。检测 USB 接口连接或者移除设备。adb server 维护着一个「已连接的设备的列表」,并且为每一个设备标记了一个状态:offline,bootloader,recovery 或者 online

adb 工作原理

当用户启动某个 adb client 时,该 client 会先检查是否有 adb server 进程正在运行。如果没有,它会启动 server 进程。server 在启动后会与本地 TCP 端口 5037 绑定,并监听 adb client 发出的命令——所有 adb client 均通过端口 5037 与 adb server 通信。

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

模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推

如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。

上述内容摘自 官方文档

adb 相关源码在 system/core/adb 下。

adb shell

熟悉 Linux 的开发者可能对 shell 并不陌生,Linux 常用的命令存放在 /bin 目录中,例如 lsrm 以及后文即将介绍的 ps 等等。

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

/bin 下的文件

adb shell 允许用户执行 设备 上 /system/bin 下的命令:

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

通过 adb shell 进入手机设备 system/bin 目录 执行 ls 命令

例如 Android Detail:工具篇 —— Android 世界的活点地图 dumpsys 中提到的 dumpsys 命令就在该目录中。

adb shell 常用的命令有 :

  • am(activity manager)

    可执行 启动 activity,service,broadcast,杀死进程等操作。

  • pm(package manager)

    可以执行 安装/卸载 应用,输出 apk 路径等操作。

  • dpm(device policy manager)

    可以执行设备管理器相关命令,激活设备管理员,设置设备管理器 owner 等。

  • screencap (截屏)

    使用该命令可以快速截屏并将图片保存至指定路径,截屏过程用户无感知。

该目录下还有一个 ps 命令,ps(process status)命令用于示当前进程的状态,在 linux 中这是一个非常常用的命令,但它不是本文的重点,下面我们主要介绍 adb shell ps 命令。

网上介绍的 adb shell ps 命令的参数不好使?

网上介绍 adb shell ps 命令 参数的文章很多,但尝试过后你会发现很多参数与文章描述的并不相符,甚至有的参数不存在。

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 -p 提示后面需要具体参数,与文章描述不符

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 -x 提示不存在

这是由于旧版本 Android 使用 toolbox,新版本使用 toybox。

什么是 toybox 以及为什么使用 toybox 替换 toolbox,可以从 这里 找到答案。

验证 ps 使用的是哪个,可以在 system/bin 目录下执行 ls -al ps

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 toybox

Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令

使用 toolbox

后文我们主要介绍 toybox 的 ps 命令的使用。

adb shell ps 命令的使用

toybox 的 ps 命令功能更强大也更全面。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Android Detail:工具篇 —— 进程状态全知道,adb 和 ps 命令求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们