ADB(Android Debug Bridge)—— Android调试桥

发布于:2025-08-10 ⋅ 阅读:(18) ⋅ 点赞:(0)

介绍

ADB(Android Debug Bridge),Android调试桥,与设备进行通信的一种命令行工具,协助开发人员在开发android应用过程中更快更好地调试apk。
https://developer.android.google.cn/tools/adb?hl=zh-cn

工作原理

C/S架构,server和daemon建立连接,client端发送adb命令,向server发送服务请求,server端将client端的请求通过usb或tcp的方式发送到对应的daemon,daemon接收命令解析运行。

  • client客户端(运行在pc端)
    发送adb命令调用客户端,adb程序尝试定位主机的adb服务器,没有就启动服务器进程。

    server端与本地 TCP 端口5037端口绑定,监听client端发送的adb命令。

  • server服务端(运行在pc端)
    作为后台进程运行,管理客户端和运行在模拟机或设备上的进程之间的通信。检测USB端口,感知设备的连接和拔除以及模拟器的启动或暂停。

    server端通过扫描端口5555~5585范围内的奇数号端口查找设备或模拟器以建立连接,一旦发现adbd便与其相应端口建立连接。偶数号端口用于控制台连接。

  • daemon守护进程(运行在设备端)
    在模拟机或设备上作为后台进程运行,连接server端响应client端的操作。

    与server端建立连接后,便可使用adb命令访问设备。

启用adb调试

USB连接

无线连接

常用命令

pm命令

pm即Package Manager,主要用于查询和管理Android应用程序包。

https://blog.csdn.net/WEB___/article/details/136512217?spm=1011.2415.3001.5331

am命令

am即Activity Manager,主要用于管理Android应用程序的Activity。

# 查看使用手册
adb shell am

启动activity

adb shell am start -W 包名/启动名
# 打开图库
adb shell am start -W com.android.gallery3d/com.android.gallery3d.app.GalleryActivity

返回内容解析

在这里插入图片描述

Starting

正在启动一个Intent。

1、指定动作 (action)

  • android.intent.action.MAIN - 主入口点
  • android.intent.action.VIEW - 查看数据
  • 其他自定义动作

2、指定类别 (category)

  • [android.intent.category.LAUNCHER] - 表示可从启动器启动
  • [android.intent.category.DEFAULT] - 默认类别

3、指定组件 (component)

  • 格式为 包名/活动类全名
Warning
Warning: Activity not started, intent has been delivered to currently running top-most instance.
当前要启动的Activity已经在前台运行,Android将Intent传递给当前正在运行的顶层aAtivity,而不是启动一个新的Activity。

Warning: Activity not started, its current task has been brought to the front
当前要启动的Activity已经在后台运行,系统为了提高效率,将其直接带到前台,而不是重新启动。

如果需要启动一个新的activity,清掉应用后台即可。

Status

Activity启动是否成功。

  • ok:启动成功
  • error:启动失败,可能是权限问题、Activity不存在等
  • timeout:启动超时
LaunchState

Activity的启动状态。

  • COLD:冷启动,进程未运行,需全新创建
  • WARM:温启动,Activity不在栈顶,但进程已存在
  • HOT:热启动,Activity仍在栈顶,直接恢复
  • UNKNOWN:未知状态
Activity

最终启动的Activity名称,可能和请求的Activity不同,取决于 Intent匹配。

  • 启动成功显示目标Activity
  • 启动失败显示null或错误的Activity
ThisTime

当前 Activity 的启动时间,仅包含 onCreate、onStart、onResume 等生命周期方法的执行时间(ms)

TotalTime

整个应用进程的启动时间,如果进程未运行,包含进程创建时间(ms),等于ThisTime+应用资源启动时间。
冷启动:TotalTime > ThisTime(因为包含进程初始化)
热启动:TotalTime ≈ ThisTime(进程已存在)

WaitTime

ActivityManager(系统)处理启动请求的总时间,包括权限检查、Intent 解析等(ms),等于TotalTime+系统资源启动时间。


网站公告

今日签到

点亮在社区的每一天
去签到