adb命令

基础功能

1.连接

USB连接步骤:

  1. 手机打开开发者模式,选择usb调试
  2. 手机用数据线连上电脑,同意该设备被电脑调试
  3. 电脑使用命令行窗口检查是否连接上:adb devices

ip连接步骤:

  1. already connected to 10.90.136.60:15017
  2. failed to authenticate to 10.90.136.60:15017

基本命令:

  • 查看adb的版本信息: adb version
  • 查看设备 – adb devices
  • 安装 – adb install 路径/xxx.apk
  • 安装 – 覆盖低版本APK:adb install -r xx.apk
  • 安装 – 覆盖高版本:adb install -r -d xx.apk
  • 卸载 – adb uninstall APK的包名
  • 电脑推送到手机 – adb push [电脑文件地址] [手机文件存放地址]
  • 手机拉取到电脑 – adb pull [手机文件存放地址] [电脑文件地址]
  • 终止adb服务进程 – adb kill-server
  • 重启adb服务进程 – adb start-server
  • 重启机器 – adb reboot
  • 获取序列号 – adb get-serialno
  • 查看进程列表 – adb shell ps
  • 查看包名列表 – adb shell pm list packages
  • 查看包名对应apk列表 – adb shell pm list packages -f
  • 查看第三方包名和apk列表 – adb shell pm list package -3 -f
  • 查看安装路径 – adb shell pm path packagename
  • 查看手机所有进程 – adb shell ps
  • 杀死进程 – adb shell kill -9 进程号
  • 杀死进程 – adb shell am force-stop 包名全称

获取包名的几种方法1
获取包名的几种方法2
https://www.jianshu.com/p/56fd03f1aaae


  • 安装 – 覆盖其它更高版本或更低版本的时候,使用上述的方法,而不是直接使用install安装,可以避免出现bug:Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
  • 如果是先使用install安装的apk,然后push进去相关测试插件,那么手机设备的路径一般是/sdcard/Android/data/com.ss.android.ugc.aweme.lite/files/.download/test.apk
  • adb shell ps的时候,name就是包名,PID是进程号在这里插入图片描述

日志

  • 日志 – 直接日志输出:adb logcat
  • 日志 – 清除日志:adb logcat -c
  • 日志 – 只选择日志格式输出:adb logcat -v [格式]
  • 日志 – 只选择日志级别输出:adb logcat [级别]
  • 日志 – 格式和级别都选择了:adb logcat -v [格式] [级别]
  • 日志 – 停止adb logcat 日志输出:Ctrl+c
  • 日志 – 输出到文本中:adb logcat > 路径/文件名.txt
  • 日志 – PID是:8607 查看某个进程的日志:adb logcat -v process |grep 8607
  • 日志 –
  • 日志 –
  • 日志 –
  • 日志 –

直接显示日志信息,好像是从设备最近一次开机的日志开始显示,所以一般是清空之后,再触发事件。

格式:

adb logcat [<option>] ... [<filter-spec>] ...
adb logcat [选项] [过滤项]
同一个tag只能有一个过滤项,多个tag可以有多个过滤项。中括号是可选的意思。
序号名称含义
选项
选项 -b 加载一个日志缓冲区, 默认是 main
-c 清空所有的日志缓存信息
-d 将缓存的日志输出到屏幕上, 并且不会阻塞
-f 将日志输出到文件, 默认输出到标准输出流中
-g查看日志缓冲区信息
-n设置日志输出的最大数目, 需要 -r 参数
-r按照每千字节输出日志, 需要 -f 参数
-s 设置输出日志的标签, 只显示该标签的日志
-t输出最近的几行日志, 输出完退出, 不阻塞
-v 设置日志的输出格式, 注意只能设置一项
-B 以二进制形式输出日志
-v 选项可以配合日志输出格式来使用
日志输出格式 brief 简要,显示优先级,进程的PID
process 仅显示PID
tag 仅显示优先级和标记
raw 显示不包含其他元数据字段的原始日志消息
time 显示日期、调用时间、优先级、标记以及发出消息的进程的 PID
threadtime 显示日期、调用时间、优先级、标记、PID 以及发出消息的线程的 TID
long 显示所有元数据字段,并使用空白行分隔消息
日志过滤级别 V — Verbose 明细,最低,输出得最多,
D — Debug 调试,
I — Info 信息,
W — Warning 警告,
E — Error 错误,
F— Fatal 严重错误,
S — Silent 最高的优先级, 可能不会记载东西/td>
合并两个单元格,要合并3个就把2改成3 ,说的好,再来一个
1) 正常的一行 对的,就是的

规则:

Android 系统的日志分为两部分,底层的 Linux 内核日志输出到 /proc/kmsg,Android 的日志输出到 /dev/log。

过滤级别:

  • V —— Verbose(最低,输出得最多)
  • D —— Debug
  • I —— Info
  • W —— Warning
  • E —— Error
  • F—— Fatal
  • S —— Silent(最高,啥也不输出)

例子:adb logcat *:W 会将 Warning、Error、Fatal 和 Silent 日志输出。

(注: 在 macOS 下需要给 *:W 这样以 * 作为 tag 的参数加双引号,如 adb logcat "*:W",不然会报错 no matches found: *:W。)

按 tag 和级别过滤日志

<filter-spec> 可以由多个 <tag>[:priority] 组成。

比如,命令:

adb logcat ActivityManager:I MyApp:D *:S

表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。

日志格式

可以用 adb logcat -v <format> 选项指定日志输出格式。
日志支持按以下几种 <format>

brief,
默认格式:<priority>/<tag>(<pid>): <message>
示例:D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0

process,
格式为:<priority>(<pid>) <message>
示例:D( 1785) Disconnected process message: 10, size: 0 (HeadsetStateMachine)

tag,
格式为:<priority>/<tag>: <message>
示例:D/HeadsetStateMachine: Disconnected process message: 10, size: 0

raw,
格式为:<message>
示例:Disconnected process message: 10, size: 0

time,
格式为:<datetime> <priority>/<tag>(<pid>): <message>
示例:08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0

threadtime,
格式为:<datetime> <pid> <tid> <priority> <tag>: <message>
示例:08-28 22:39:39.974 1785 1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0

long,
格式为:[ <datetime> <pid>:<tid> <priority>/<tag> ]<message>
示例:[ 08-28 22:39:39.974 1785: 1832 D/HeadsetStateMachine ]Disconnected process message: 10, size: 0

指定格式可与上面的过滤同时使用。比如:

adb logcat -v long ActivityManager:I *:S

内核日志

命令:

adb shell dmesg

输出示例:

<6>[14201.684016] PM: noirq resume of devices complete after 0.982 msecs
<6>[14201.685525] PM: early resume of devices complete after 0.838 msecs
<6>[14201.753642] PM: resume of devices complete after 68.106 msecs
<4>[14201.755954] Restarting tasks ... done.
<6>[14201.771229] PM: suspend exit 2016-08-28 13:31:32.679217193 UTC
<6>[14201.872373] PM: suspend entry 2016-08-28 13:31:32.780363596 UTC
<6>[14201.872498] PM: Syncing filesystems ... done.

中括号里的 [14201.684016] 代表内核开始启动后的时间,单位为秒。

通过内核日志我们可以做一些事情,比如衡量内核启动时间,在系统启动完毕后的内核日志里找到 Freeing init memory 那一行前面的时间就是。

https://developer.android.com/studio/command-line/logcat

<think> 我们被要求介绍ADB命令的相关信息和使用方法。根据用户提供的引用,我们知道ADB是Android Debug Bridge的缩写,是用于与Android设备交互的工具。我们将结合引用内容,并补充一些常见的ADB命令和使用场景。 由于用户特别要求使用LaTeX格式的数学表达式(虽然ADB命令介绍中可能较少涉及数学公式,但如果有数学表达需要,我们会按照要求使用$...$或$$...$$),但考虑到ADB命令介绍主要是文本和命令示例,所以我们将重点放在命令介绍上,如果有需要计算或参数说明的地方再使用数学表达式。 另外,我们需要在回答中自然添加引用标识(引用用户提供的两个参考段落)。 最后,按照要求生成相关问题。 下面开始组织回答: </think>### ADB命令介绍及使用方法 ADB(Android Debug Bridge)是Android开发者工具包中的命令行工具,用于与Android设备进行交互,支持应用安装、文件传输、设备调试等操作[^1]。以下为核心功能及使用指南: --- ### 一、基础环境配置 1. **安装步骤** - 下载ADB工具包(含`adb.exe`、`AdbWinApi.dll`等)[^1] - 配置环境变量:将工具包路径添加到系统`PATH` - 验证安装: ```bash adb version # 显示版本号(如1.0.32) ``` 2. **设备连接** ```bash adb devices # 列出已连接设备 adb connect 192.168.1.100:5555 # 通过WiFi连接 ``` --- ### 二、核心功能命令 #### 1. 应用管理 | 命令 | 作用 | |-------------------------------|--------------------------| | `adb install app.apk` | 安装APK | | `adb uninstall com.example.app` | 卸载应用 | | `adb shell pm list packages` | 列出所有应用包名 | #### 2. 文件操作 ```bash adb push local.txt /sdcard/ # 电脑→设备 adb pull /sdcard/remote.txt . # 设备→电脑 ``` #### 3. 设备控制 ```bash adb reboot # 重启设备 adb shell input keyevent 26 # 触发电源键(26为键值) ``` #### 4. 屏幕操作 ```bash adb shell screencap /sdcard/screen.png # 截屏 adb shell screenrecord /sdcard/video.mp4 --size 720x1280 # 录屏[^2] ``` --- ### 三、高级调试技巧 1. **进程监控** ```bash adb shell ps | grep chrome # 过滤特定进程 adb shell top -n 1 # 查看实时CPU占用[^2] ``` 2. **日志分析** ```bash adb logcat -v time > log.txt # 导出带时间戳的日志 adb logcat *:E # 仅显示错误日志 ``` 3. **Shell命令直通** ```bash adb shell "dumpsys battery | grep level" # 获取电池电量 ``` --- ### 四、性能优化参数 对于需要精确控制的操作(如触控事件注入),需满足时序约束: $$ t_{event\_delay} \leq 10ms $$ 可通过调整采样率实现: ```bash adb shell settings put global animator_duration_scale 0 # 关闭动画提升响应 ``` --- ### 五、兼容性说明 | Android版本 | 特性支持 | |-------------|--------------------------| | ≤4.3 | 需开启USB调试模式 | | ≥4.4 | 支持`screenrecord`[^2] | | ≥11 | 强制Scoped Storage权限 | > **注**:部分命令需Root权限(如`adb root`) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值