adb 怎么启动应用
时间: 2025-05-08 21:16:19 浏览: 41
### 使用 ADB 命令启动 Android 应用程序
可以通过 `adb shell am start` 命令来启动指定的应用程序及其 Activity。以下是该方法的具体实现方式以及参数说明:
#### 启动应用的命令结构
```bash
adb shell am start -n [包名/Activity路径]
```
其中:
- `-n` 参数用于指定要启动的目标组件(即 `[包名/Activity路径]`),这是必填项。
- `[包名/Activity路径]` 是目标应用程序的全限定名称,通常由两部分组成:第一部分是应用的包名;第二部分是具体 Activity 的类路径。
例如,假设有一个应用的包名为 `com.example.app`,其主界面对应的 Activity 类为 `MainActivity`,那么完整的命令如下所示[^5]:
```bash
adb shell am start -n com.example.app/com.example.app.MainActivity
```
#### 可选参数
除了基本的 `-n` 参数外,还可以附加其他选项以满足不同的需求:
- **等待完成标志 (`-W`)**
如果希望在执行此操作时阻塞直到活动完全加载完毕,则可加入 `-W` 参数。这有助于脚本编写者获取更精确的时间点信息或者确认某些条件达成后再继续后续流程。
示例:
```bash
adb shell am start -W -n com.example.app/com.example.app.MainActivity
```
- **类别设置 (`--es`, `--ez`, etc.)**
对于需要传递额外数据给目标 activity 场景而言,可通过一系列带前缀 "--" 开头标记来进行定义。比如字符串型(`--es`),布尔值型(`--ei`)等等形式的数据注入[^4].
实例演示向某activity传入key-value键值对:
```bash
adb shell am start \
-n com.example.app/com.example.app.MainActivity \
--es key_name value_content --ei another_key integer_value
```
注意上述反斜杠`\`仅作为跨行书写辅助工具,在实际运行环境中应保持单行输入模式。
---
### Java Runtime 执行 AM Start 方法
另外一种间接调用的方式是从Java层面上利用Runtime对象去触发相应的shell指令:
```java
try {
Process process = Runtime.getRuntime().exec(
"adb shell am start -n com.zj.demo/.MainActivity"
);
} catch (IOException e) {
System.err.println(e.getMessage());
}
```
这里需要注意的是当设备连接异常或者其他意外状况发生时候可能会抛出IO Exception,因此建议做好错误处理机制.
阅读全文
相关推荐















