当前位置: 首页 > ai >正文

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

文章目录

  • 介绍
  • 工作原理
  • 启用adb调试
    • USB连接
    • 无线连接
  • 常用命令
    • pm命令
  • am命令
    • 启动activity
      • 返回内容解析
        • Starting
        • Warning
        • Status
        • LaunchState
        • Activity
        • ThisTime
        • TotalTime
        • WaitTime

介绍

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+系统资源启动时间。

http://www.xdnf.cn/news/17338.html

相关文章:

  • day22|学习前端ts语言
  • 资深全栈工程师面试题总结
  • DAY35打卡
  • 吴恩达机器学习笔记(4)—多变量线性回归:梯度下降(附代码)
  • C#异步编程双利器:异步Lambda与BackgroundWorker实战解析
  • 2025-08-09通过授权码的方式给exe程序充值
  • 二十、MySQL-DQL-条件查询
  • 本科毕业论文怎么引用github里面数据集
  • SkyWalking-3--Java Agent开发和集成示例
  • 在JVM调优时,你关注哪些指标?
  • Arm Development Studio 安全通告:CVE-2025-7427
  • 数据结构day06
  • 【工具变量】全国省级农业保险保费收入与赔付支出数据更新(2001-2023年)
  • JVM常用参数有哪些?
  • 虚拟机Ubuntu重启发现找不到共享文件夹
  • Flutter Listview的基本使用
  • Cursor手机版:一半是神,一半是坑
  • 【能碳建设2】把“能碳计算”做成可配置、可演示的系统
  • 【线性代数】线性方程组与矩阵——(2)矩阵与线性方程组的解
  • 深入理解 @Schema 注解:让你的 API 文档自动 “说话”
  • 消息队列核心功能和消息队列做异步的优势
  • NX二次开发——面有关的函数
  • Datawhale AI夏令营学习
  • Kubernetes 集群密钥与机密管理方案对比分析:Vault、Sealed Secrets 与 AWS KMS
  • C++方向知识汇总(一)
  • 可泛化双手操作机器人基准测试:CVPR 2025 MEIS 研讨会 RoboTwin 双臂协作挑战赛
  • SwiftUI 登录页面键盘约束冲突与卡顿优化全攻略
  • 大语言模型提示工程与应用:提示工程-提升模型准确性与减少偏见的方法
  • node.js 零基础入门
  • mfc按钮点击事件没有触发,且程序卡死