android adb e,ADB 常用命令整理

本文详细介绍了如何使用adb进行Android设备的远程连接,包括adb的基本命令、设备状态检查、屏幕分辨率获取、APK安装与卸载、应用列表查看、Service与Activity管理等,同时提供了常见问题及其解决方案,是Android开发者必备的调试工具指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

远程连接Android 使用adb,远程操作屏幕推荐使用Scrcpy,以下为个人学习记录使用

1、命令语法

adb [-d|-e|-s ]

如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb 。

如果有多个设备/模拟器连接,则需要为命令指定目标设备。

参数含义-d指定当前唯一通过 USB 连接的 Android 设备为命令目标

-e指定当前唯一运行的模拟器为命令目标

-s 指定相应 serialNumber 号的设备/模拟器为命令目标

2、设备查询

adb devices

fa1980fb1fac0cba08163c79e3826dad.png

输出格式为 [serialNumber] [state],serialNumber 即我们常说的 SN,state 有如下几种:

offline —— 表示设备未连接成功或无响应。

device —— 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。

no device —— 没有设备/模拟器连接。

3、打印屏幕分辨率信息

adb shell dumpsys window displays

打印简单方式:

adb shell wm size

0d7bd009593cebaba425686e65a6e7aa.png

4、启动/停止

启动:adb start-server

停止:adb kill-server

5、无线链接/断开

链接:adb connect

断开:adb disconnect

如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行 adb connect  那一步;

如果还是不行的话,通过 adb kill-server 重新启动 adb 然后从头再来一次试试。

6、查看应用列表

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

查看所有应用:adb shell pm list packages

参数显示列表无所有应用

-f显示应用关联的 apk 文件

-d只显示 disabled 的应用

-e只显示 enabled 的应用

-s只显示系统应用

-3只显示第三方应用

-i显示应用的 installer

-u包含已卸载应用

包名包含  字符串

7、安装APK

adb install [-lrtsdg]

adb install 后面可以跟一些可选参数来控制安装 APK 的行为,可用参数及含义如下:

参数含义-l将应用安装到保护目录 /mnt/asec

-r允许覆盖安装

-t允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用

-s将应用安装到 sdcard

-d允许降级覆盖安装

-g授予所有运行时权限

常见安装失败输出代码、含义及可能的解决办法如下:

输出含义解决办法INSTALL_FAILED_ALREADY_EXISTS应用已经存在,或卸载了但没卸载干净adb install 时使用 -r 参数,或者先 adb uninstall  再安装

INSTALL_FAILED_INVALID_APK无效的 APK 文件

INSTALL_FAILED_INVALID_URI无效的 APK 文件名确保 APK 文件名里无中文

INSTALL_FAILED_INSUFFICIENT_STORAGE空间不足清理空间

INSTALL_FAILED_DUPLICATE_PACKAGE已经存在同名程序

INSTALL_FAILED_NO_SHARED_USER请求的共享用户不存在

INSTALL_FAILED_UPDATE_INCOMPATIBLE以前安装过同名应用,但卸载时数据没有移除;或者已安装该应用,但签名不一致先 adb uninstall  再安装

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE请求的共享用户存在但签名不一致

INSTALL_FAILED_MISSING_SHARED_LIBRARY安装包使用了设备上不可用的共享库

INSTALL_FAILED_REPLACE_COULDNT_DELETE替换时无法删除

INSTALL_FAILED_DEXOPTdex 优化验证失败或空间不足

INSTALL_FAILED_OLDER_SDK设备系统版本低于应用要求

INSTALL_FAILED_CONFLICTING_PROVIDER设备里已经存在与应用里同名的 content provider

INSTALL_FAILED_NEWER_SDK设备系统版本高于应用要求

INSTALL_FAILED_TEST_ONLY应用是 test-only 的,但安装时没有指定 -t 参数

INSTALL_FAILED_CPU_ABI_INCOMPATIBLE包含不兼容设备 CPU 应用程序二进制接口的 native code

INSTALL_FAILED_MISSING_FEATURE应用使用了设备不可用的功能

INSTALL_FAILED_CONTAINER_ERRORsdcard 访问失败; 2. 应用签名与 ROM 签名一致,被当作内置应用确认 sdcard 可用,或者安装到内置存储; 2. 打包时不与 ROM 使用相同签名

INSTALL_FAILED_INVALID_INSTALL_LOCATION不能安装到指定位置; 2. 应用签名与 ROM 签名一致,被当作内置应用切换安装位置,添加或删除 -s 参数; 2. 打包时不与 ROM 使用相同签名

INSTALL_FAILED_MEDIA_UNAVAILABLE安装位置不可用一般为 sdcard,确认 sdcard 可用或安装到内置存储

INSTALL_FAILED_VERIFICATION_TIMEOUT验证安装包超时

INSTALL_FAILED_VERIFICATION_FAILURE验证安装包失败

INSTALL_FAILED_PACKAGE_CHANGED应用与调用程序期望的不一致

INSTALL_FAILED_UID_CHANGED以前安装过该应用,与本次分配的 UID 不一致清除以前安装过的残留文件

INSTALL_FAILED_VERSION_DOWNGRADE已经安装了该应用更高版本使用 -d 参数

INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE已安装 target SDK 支持运行时权限的同名应用,要安装的版本不支持运行时权限

INSTALL_PARSE_FAILED_NOT_APK指定路径不是文件,或不是以 .apk 结尾

INSTALL_PARSE_FAILED_BAD_MANIFEST无法解析的 AndroidManifest.xml 文件

INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION解析器遇到异常

INSTALL_PARSE_FAILED_NO_CERTIFICATES安装包没有签名

INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES已安装该应用,且签名与 APK 文件不一致先卸载设备上的该应用,再安装

INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING解析 APK 文件时遇到 CertificateEncodingException

INSTALL_PARSE_FAILED_BAD_PACKAGE_NAMEmanifest 文件里没有或者使用了无效的包名

INSTALL_PARSE_FAILED_BAD_SHARED_USER_IDmanifest 文件里指定了无效的共享用户 ID

INSTALL_PARSE_FAILED_MANIFEST_MALFORMED解析 manifest 文件时遇到结构性错误

INSTALL_PARSE_FAILED_MANIFEST_EMPTY在 manifest 文件里找不到找可操作标签(instrumentation 或 application)

INSTALL_FAILED_INTERNAL_ERROR因系统问题安装失败

INSTALL_FAILED_USER_RESTRICTED用户被限制安装应用

INSTALL_FAILED_DUPLICATE_PERMISSION应用尝试定义一个已经存在的权限名称

INSTALL_FAILED_NO_MATCHING_ABIS应用包含设备的应用程序二进制接口不支持的 native code

INSTALL_CANCELED_BY_USER应用安装需要在设备上确认,但未操作设备或点了取消在设备上同意安装

INSTALL_FAILED_ACWF_INCOMPATIBLE应用程序与设备不兼容

does not contain AndroidManifest.xml无效的 APK 文件

is not a valid zip file无效的 APK 文件

Offline设备未连接成功先将设备与 adb 连接成功

unauthorized设备未授权允许调试

error: device not found没有连接成功的设备先将设备与 adb 连接成功

protocol failure设备已断开连接先将设备与 adb 连接成功

Unknown option: -sAndroid 2.2 以下不支持安装到 sdcard不使用 -s 参数

No space left on device空间不足清理空间

Permission denied … sdcard …sdcard 不可用

signatures do not match the previously installed version; ignoring!已安装该应用且签名不一致先卸载设备上的该应用,再安装

8、卸载应用

adb uninstall [-k]

 表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录。

9、查看正在运行的Service

adb shell dumpsys activity services []

 参数不是必须的,指定  表示查看与某个包名相关的 Services,不指定表示查看所有 Services。

 不一定要给出完整的包名,比如运行 adb shell dumpsys activity services org.mazhuang,那么包名 org.mazhuang.demo1、org.mazhuang.demo2 和 org.mazhuang123 等相关的 Services 都会列出来。

10、调起Activity

adb shell am start [options]

例如:

adb shell am start -n com.tencent.mm/.ui.LauncherUI

表示调起微信主界面。

adb shell am start -n org.mazhuang.boottimemeasure/.MainActivity --es "toast" "hello, world"

表示调起 org.mazhuang.boottimemeasure/.MainActivity 并传给它 string 数据键值对 toast - hello, world。

11、调起Service

adb shell am startservice [options]

例如:

adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService

12、强制停止应用

adb shell am force-stop

命令示例:

adb shell am force-stop com.qihoo360.mobilesafe

13、复制设备文件到电脑

adb pull [电脑上的目录]

其中 电脑上的目录 参数可以省略,默认复制到当前目录。

例:

adb pull /sdcard/sr.mp4 ~/tmp/

小技巧:设备上的文件路径可能需要 root 权限才能访问,如果你的设备已经 root 过,可以先使用 adb shell 和 su 命令在 adb shell 里获取 root 权限后,先 cp /path/on/device /sdcard/filename 将文件复制到 sdcard,然后 adb pull /sdcard/filename /path/on/pc。

14、复制电脑里文件到设备

adb push

例:

adb push ~/sr.mp4 /sdcard/

小技巧:设备上的文件路径普通权限可能无法直接写入,如果你的设备已经 root 过,可以先 adb push /path/on/pc /sdcard/filename,然后 adb shell 和 su 在 adb shell 里获取 root 权限后,cp /sdcard/filename /path/on/device。

标签:应用,FAILED,adb,INSTALL,常用命令,整理,ADB,安装,设备

来源: https://blog.youkuaiyun.com/huoguangyao/article/details/113176706

<think>好的,我现在需要帮助用户查找ADB命令的常用用法和示例。用户之前询问过黑盒测试的相关内容,现在转向ADB命令,可能是在进行移动应用测试时需要用到这些工具。首先,我要确认用户的需求是什么。他们提到了“常用adb命令的示例和用法”,所以需要重点整理那些最常用、最基础的命令,并给出实际例子,让用户能够快速上手。 接下来,我需要参考用户提供的三个引用内容。引用1详细说明了ADB的工作原理,包括adb server、client和adbd的交互,这对理解命令执行机制有帮助,但用户当前更关注的是具体命令的使用,所以这部分可能只需要简要提及。引用2和引用3列举了一些具体的命令,比如安装应用、指定设备等,这些都是用户需要的核心内容。 用户可能是一位测试人员或开发者,需要在实际工作中快速查找命令,因此回答的结构要清晰,分门别类,便于查阅。同时,用户可能希望了解每个命令的实际应用场景,比如调试、安装、文件管理、日志查看等,因此需要将命令按功能分类,并给出示例。 我需要确保覆盖用户提到的常用命令,比如安装应用、设备管理、文件操作、日志查看、屏幕截图、应用管理等。同时,补充一些高级但常用的命令,比如无线调试、端口转发等,可能对用户有帮助。此外,用户可能对某些参数不太清楚,比如-d、-e、-s的区别,需要明确说明。 需要注意的是,用户提供的引用中有重复内容,比如安装命令的不同参数,需要整合到同一个类别下,避免冗余。同时,错误处理也是一个重要部分,比如命令执行失败的可能原因,可以简要提及,帮助用户排查问题。 最后,要确保回答符合之前设定的格式要求:使用中文,行内数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能数学公式较少,主要集中在代码块和命令示例上。同时,生成相关问题,帮助用户进一步探索,比如性能分析、复杂场景命令、无线调试等。</think>--- ### ADB常用命令及示例详解 --- #### 一、ADB运行原理概述 ADBAndroid Debug Bridge)通过**客户端-服务器架构**实现设备与PC的通信: 1. **PC端**:`adb client`发送命令 → `adb server`转发 → 手机端`adbd`守护进程执行[^1] 2. **核心组件**: - `adb client`:开发者直接操作的命令行工具 - `adb server`:后台进程管理设备连接 - `adbd`:Android设备端服务进程 --- #### 二、设备管理命令 ##### 1. **查看已连接设备** ```bash adb devices ``` **输出示例**: ``` List of devices attached emulator-5554 device ABCD12345678 unauthorized ``` - `unauthorized`表示设备未授权USB调试[^3] ##### 2. **指定设备执行命令** 多设备连接时使用`-s`参数: ```bash adb -s emulator-5554 shell ``` --- #### 三、应用管理命令 ##### 1. **安装/卸载应用** ```bash # 普通安装(覆盖安装加 -r) adb install app-debug.apk # 安装到SD卡(需应用支持) adb install -s app-debug.apk # 卸载应用(需包名) adb uninstall com.example.myapp ``` ##### 2. **应用调试命令** ```bash # 查看前台Activity adb shell dumpsys window | grep mCurrentFocus # 强制停止应用 adb shell am force-stop com.example.myapp ``` --- #### 四、文件操作命令 ##### 1. **文件传输** ```bash # PC→设备 adb push local.txt /sdcard/ # 设备→PC adb pull /sdcard/remote.txt ~/Downloads/ ``` ##### 2. **设备文件管理** ```bash # 进入shell环境 adb shell # 查看目录(需设备有root权限) adb shell ls /system/app ``` --- #### 五、调试分析命令 ##### 1. **日志查看** ```bash # 实时过滤ERROR级别日志 adb logcat *:E # 按TAG过滤日志 adb logcat -s MyAppTag ``` ##### 2. **性能分析** ```bash # 查看CPU占用 adb shell top -n 1 # 内存分析 adb shell dumpsys meminfo com.example.myapp ``` --- #### 六、高级功能命令 ##### 1. **屏幕操作** ```bash # 截图并导出到PC adb shell screencap -p /sdcard/screen.png adb pull /sdcard/screen.png # 屏幕录制(Android 4.4+) adb shell screenrecord /sdcard/demo.mp4 ``` ##### 2. **无线调试** ```bash # 切换到无线连接 adb tcpip 5555 adb connect 192.168.1.100:5555 ``` --- #### 七、典型应用场景 | 场景 | 命令示例 | |---------------------|--------------------------------------------------------------------------| | 批量安装测试APK | `for apk in *.apk; do adb install $apk; done` | | 清除应用数据 | `adb shell pm clear com.example.myapp` | | 模拟按键事件 | `adb shell input keyevent KEYCODE_HOME` | | 端口转发调试 | `adb reverse tcp:8080 tcp:8080`(将设备8080端口映射到PC)[^2] | --- #### 八、参数速查表 | 参数 | 作用 | 示例 | |------|------------------------|---------------------------| | `-d` | 指定唯一连接的USB设备 | `adb -d install app.apk` | | `-e` | 指定模拟器 | `adb -e logcat` | | `-p` | 指定包名 | `adb shell pm path -p com.example` | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值