全网最全ADB命令,没有之一

全网最全ADB命令,没有之一ADB 全名 AndroidDebug 是 Android 提供的一个通用的调试工具 是一个 C S 架构的命令行工具 通过这个工具 使得我们的 PC 能够和 Android 设备来进行通信

和优秀的人在一起,会被他的趣味、热情所感染、喜欢探索世间的一切事物,并从中得到感悟与成长。

注意:本篇文章中所展示的案例是在Mac book 运行。

1.ADB概念

ADB,全名Android Debug Bridge,是Android提供的一个通用的调试工具,是一个C/S架构的命令行工具,通过这个工具,使得我们的PC能够和Android设备来进行通信。

1.2 ADB的工作原理:

adb包含三个部分:

a. Client端:运行在开发机器中,用来发送adb命令,比如电脑

b. Daemon守护进程:运行在调试设备,比如手机、模拟器中,用来接收并执行adb命令

c. Server端:运行在开发机器中,用来管理Client端和手机端Daemon之间的通信。

当在电脑命令行窗口中输入adb 命令时,会先执行adb客户端,客户端拿到命令之后,会发送给adb服务端,server再将命令传给Daemon,最后在手机上执行。假如在手机上安装一个应用,会有一个返回信息,会将信息传递给adb服务器,adb 在给客户端,最后显示在命令行。

总结:

a.client端将命令发送给server端

b.server端会将命令发送给daemon端

c.daemon端进行执行

d.将执行结果,返回给server端

e.server端将结果再返回给client端

2.准备工作

2.1 打开调试模式

为了使用adb来控制、调试Android设备,我们需要使用USB数据线将PC和Android手机设备进行连接,当然必须要将手机设备的USB调试模式打开。

Android模拟器种类: - Android Studio emulator(官方),要根据电脑的性能进行使用 - genymotion(国外的软件,需要访问外网才可以使用) - mumu、雷电、夜神、逍遥等第三方模拟器(强烈推荐第三方软件) 

2.2 安装adb

1)安装JDK

2)Mac中安装ADB命令

brew install android-platform-tools 

3.ADB相关指令牛刀小试

3.1 简单指令

1)验证adb 是否安装成功

adb help 或者 adb --help 会出现adb的版本和帮助信息 

2)开启或者关闭服务

adb start-server:开启adb服务 adb kill-server:关掉adb服务 

3)adb devices : 查看电脑是否连接设备

adb devices 或者 adb devices -l 或者 adb get-state 

使用该指令将返回设备状态信息,该状态信息包含三种

  • devices状态:表示移动设备或者模拟器已经连接到adb服务器上
  • offline状态:表示移动设备或者模拟器没有连接到adb服务器或者没有响应
  • no devices状态:表示没有设备或者模拟器连接

3)adb install :安装

第一种情况:当只有一台设备时

a. adb install apk路径 b. adb install -r :覆盖原来安装的软件,并保留数据 c. adb install-multiple demo1.apk demo2.apk d. adb install -t demo1.apk : 如果在安装中,遇到Failure [INSTALL_FAILED_TEST_ONLY installPackageLI],则使用该命令 e. adb install -d demo.apk :允许版本代码升级 f. adb install -g demo.apk :授权所有运行时权限 

第二种情况:当有多台设备时,使用-s 序列号 进行指定设备

adb -s 序列号 install apk路径 

4)adb uninstall :卸载

adb unstall demo.apk 卸载设备中的应用,并希望保留配置和缓存文件 adb -s 序列号 shell pm uninstall -k 包名 

5)adb pull : 将移动设备中的文件传送到PC上

adb pull 移动设备路径 PC路径 

6)adb push :将PC中的文件传送到移动设备端

adb push PC路径 移动设备路径 adb push PC路径 /sdcard/ 

7)adb logcat:查看和跟踪系统日志缓冲区的信息,

adb logcat >/Users/xxxx/demo.log 或者 adb -s 序列号 logcat >/Users/xxxx/demo.log 
日志等级,优先级从低到高分为以下几种: V——Verbose(最低等级,开发调试中的一些详细信息,仅在开发中使用,不可再发布产品中) D——Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见) I——info(信息,一般提示性的信息) W——Warning(警告) E——Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志) 在 E级别中可以搜索这个关键字:fatal exception ANR全名Application Not Responding,也就是应用无响应当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框 在日志中查询:ANR in 在查到ANR in 之后 上一行会有 

查看日志常用的参数

adb logcat -v time 打印时间 adb logcat -v color 使用不同的颜色来显示每个优先级 adb logcat -f 
  
    将日志输出到文件(文件存在手机上),例如,adb logcat -f /sdcard/log.log adb logcat > log.log 保存日志到PC上 adb logcat -c 清理已存在的日志 adb logcat *:W 打印Warning以上级别的日志 adb logcat ActivityManager:D '*:S' 过滤tag 为ActivityManager,level为Debug及以上级别的日志(S表示无记载silent,最高优先级,绝不输出任何内容) 
  

3.2 高级指令——adb shell指令讲解

1)显示手机当前目录的所有内容

adb shell ls 或者分开使用 ~~adb shell ~~ls 注意:使用exit退出提示符 如果在操作过程中出现没有权限的问题,则需要切换root用户 su root 

2)查看电池电量的相关信息

adb shell dumpsys battery 描述信息: AC powered: false        //false表示没有使用AC电源供电 USB powered: true        //true表示使用USB电源供电 Wireless powered: false     //false表示没使用无线电源 status: 2             //2表示电池正在充电,1表示没充电 health: 2             //2表示电池状态优秀 present: true           //true表示已安装电池 level: 42             //电池百分比 scale: 100             //满电量时电池百分比为100%(不确定是否正确) voltage: 3868           //电池电压 temperature: 330         //电池温度为25摄氏度 technology: Li-ion        //电池类型为锂电池 

在这里插入图片描述

3) 查看无限网络信息

adb shell dumpsys wifi 由于该指令输出的信息很多,所以在此加入参数,当输出信息在显示满一页的时候就暂停输出 如果想再继续输出,则需要按空格键继续显示下页内容。按“Q”停止显示后续输出信息。 adb shell dumpsys wifi | more 

4)查看电源管理相关信息

adb shell dumpsys power 含义:可以判断手机是否处于锁屏状态 根据关键信息进行查询,仅输出屏幕关闭时间的设置信息 windows设置: adb shell dumpsys power | findstr "mScreenOffTimeoutSetting" Linux设置: adb shell dumpsys power | grep "mScreenOffTimeoutSetting" 

5)am

am 全称为Activity Manager ,可以使用am去模拟各种系统的行为 adb shell am start com.taobao.taobao/com.taobao.tao.TBMainActivity 

6)获取包名和界面名

包名(Package,具有唯一性)

界面名(activity)

 adb shell dumpsys window | grep mFocusedApp 或者 adb shell "dumpsys window | grep mCurrentFocus" 

在这里插入图片描述

7)获取启动时间——adb shell am start -W 包名/界面名

➜ ~ adb shell am start -W com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity } Status: ok Activity: com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity ThisTime: 289 TotalTime: 289 WaitTime: 311 Complete 以毫秒为单位 点击图标然后松开,这个时间是系统时间(分配内存和CPU的时间),应用application等待资源启动的时间 ThisTime:为界面启动耗时 TotalTime:应用自身启动耗时=ThisTime + 应用application等资源启动时间 WaitTime:系统启动耗时=TotalTime + 系统资源启动时间 

8)adb shell pm list packages 列出包名

- 列出所有的包名 adb shell pm list packages - 列出通过第三方安装的包 adb shell pm list packages -3 pm全称为package manager ,可以使用pm命令模拟Android行为或者查询设备上的应用。 
adb shell pm clear <包名> 

4. adb 模拟手机按键

相关文档:https://developer.android.com/reference/android/view/KeyEvent

  1. 打开“指针位置” 设置
    设置——开发者选项——指针位置

  2. 执行 adb shell input 命令
    在这里插入图片描述

- 模拟点击事件 adb shell input tap x坐标 y坐标 adb shell input tap 528 1539 - 输入文本 首先需要把光标移到输入框,然后执行以下命令 adb shell input text zengzengzeng - 模拟滑动事件 adb shell swip <起点x> <起点y> <终点x> <终点y> <滑动时长> adb shell input swipe 528 1539 528 1300 2000 2000为滑动时间,单位是毫秒 - 返回键 adb shell input keyevent 4 - 返回home键(置应用于后台) adb shell input keyevent 3 - 音量放大 adb shell input keyevent 24 - 音量缩小 adb shell input keyevent 25 

5. CPU使用情况

1)查看当前系统CPU使用情况:

adb shell dumpsys cpuinfo 获取的是一段时间的均值 

在这里插入图片描述
2)进程占用情况

adb shell top adb shell top | grep "包名" —— 查看某个包的一些性能 adb shell top -d 1 |grep "包名" 

3)内存使用情况

adb shell dumpsys meminfo 

小伙伴们也可以关注公众号“小曾的IT之旅”,回复关键词“adb”,即可获取相应资料

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226023.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:01
下一篇 2026年3月17日 上午8:01


相关推荐

  • Python网页爬取_在pycharm里面如何爬取网页

    Python网页爬取_在pycharm里面如何爬取网页使用Python爬取简单数据闲暇时间学习Python,不管以后能否使用,就算了解计算机语言知识。因为有一点Java基础,所以Python的基本语法就很快的过了一遍,看了视频之后直接就开始编写,表达或许有点混乱,以后慢慢改进。一、导入爬取网页所需的包。frombs4importBeautifulSoup#网页解析importxlwt#excelimportre#正则表达式importurllib.request,urllib.error#指定url,获取

    2022年10月13日
    4
  • python转义字符_python转义字符

    python转义字符_python转义字符广告关闭腾讯云 11 11 云上盛惠 精选热门产品助力上云 云服务器首年 88 元起 买的越多返的越多 最高返 5000 元 用科学计数法格式化浮点数 g 根据值的大小决定使用 f 活 e g 作用同 g 根据值的大小决定使用 f 活 e p 用十六进制数格式化变量的地址 python 的转义字符及其含义符号说明单引号双引号 a 发出系统响铃声 b 退格符 n 换行符 t 横向制表符 v 纵向制表符 r

    2026年3月26日
    2
  • 解读腾讯混元-O:全模态大模型如何重塑AI技术边界

    解读腾讯混元-O:全模态大模型如何重塑AI技术边界

    2026年3月13日
    2
  • c++——类模板

    c++——类模板1 概念类模板 一个模板 是模板 模板类 调用类模板生成的类对象 是类实体 也称为类模板的实例化类模板的定义 template typenameT classBlob public Blob Blob std initializer list T i 类模板的使用 在定义类时 使用到类名的地方都需要显示的给出模板类的类型 格式为 lt gt intmain Blob T typenameT

    2026年3月16日
    2
  • Zuul网关使用_zuul网关的作用

    Zuul网关使用_zuul网关的作用Zuul介绍Zuul与SpringCloudGateway作用差不多,推荐还是使用SpringCloudGateway,毕竟是Spring家族的,优先级高一些。他们都和Nginx一样,主要是用于服务器的反向代理;只要是反向代理,那么久可以提供路由、监控、弹性、安全等功能;一般也是说是网关,因为数据的入口都从这么流入流出。Zuul的核心是过滤器,通过这些过滤器我们可以扩展出很多功能,比如:动态路由动态地将客户端的请求路由到后端不同的服务,做一些逻辑处理,比如聚合多个服务的数据返回。请求监

    2022年8月15日
    12
  • 关于cv::imread读取图片类型的初探[通俗易懂]

    关于cv::imread读取图片类型的初探[通俗易懂]关于cv::imread读取图片类型的初探问题来源环境首先生成单通道和三通道的png图片cv::imread函数及其参数不同参数读取rgb图像不同参数读取单通道图片问题来源在处理深度图的时候,在用cv::imread读取深度图像时,本以为得到的是单通道图,但实际是三通道图。所以仔细看了一下cv::imread函数。环境Ubuntu16Opencv4.0.0首先生成单通道和三通…

    2022年10月14日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号