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

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.dtcms.com/a/322362.html

相关文章:

  • Android MediaMetadataRetriever取视频封面,Kotlin(1)
  • 【Android调用相册、拍照、录像】等功能的封装
  • Milvus 向量数据库基础操作解析
  • 进阶向:Python编写网页爬虫抓取数据
  • vulnhub-Beelzebub靶场通关攻略
  • 【Spring Boot 快速入门】八、登录认证(二)统一拦截
  • Android中RecyclerView基本使用
  • 鸿蒙分布式任务调度深度剖析:跨设备并行计算的最佳实践
  • Java安全-组件安全
  • 哈希与安全
  • Red Hat Enterprise Linux 7.9安装Oracle 11.2.0.4单实例数据库-图文详解
  • urmom damn the jvm
  • vscode/trae 的 settings.json 中配置 latex 的一些记录
  • QT环境搭建
  • 数学学习 | 高数、线代、概率论及数理统计荐书
  • 【Task2】【Datawhale AI夏令营】多模态RAG
  • 图片拆分工具,自定义宫格切割
  • 第4章 程序段的反复执行4.2while语句P128练习题(题及答案)
  • CVPR中深度学习新范式:通用性、鲁棒性与多模态的创新突破
  • 六、CV_图像增强方法
  • Python 程序设计讲义(66):Python 的文件操作——数据的处理
  • 多模态RAG赛题实战--Datawhale AI夏令营
  • 计算BERT-BASE参数量
  • 基于windows10/11的可用的自动日记启动脚本
  • Irix HDR Pro:专业级 HDR 图像处理软件
  • STM32H503不同GPIO速度配置(HAL库)对应的最高速度
  • Linux网络转发系统框架分析
  • 栈和队列应用实操
  • RAGFoundry:面向检索增强生成的模块化增强框架
  • 深入剖析Spring MVC核心原理:从请求到响应的魔法解密