说明
提示
- 该教程基于11.42.0+开发插件版本,手机上安装的是11.42.0的APK
- 编程工具使用的是Cursor和IDEA
- IDEA作为全功能版本,包含了新建工程等,Cursor作为辅助编程、自动纠错和编译运行工具
工程说明
- 使用 IDEA 打开一个文件夹,然后新建 模块,如下图所示
-
- 如果没有出现,ec_work_config/android/bin目录,可以关闭 IDEA 重新打开工程文件夹
- ec_work_config/android/bin存放的是EC安卓编译相关的CLI和SKILL.md
使用Cursor编程
打开工程
- 使用Cursor打开文件夹的功能,选择你的工程文件夹,不要选择到模块
-
- 跟AI对话,让AI理解工程,并且扫描工程结构和SKILL.md
编译IEC文件
- 跟AI对话,让AI编译,例如编译testai工程
-
预览工程
- 前提是有设备链接到IDEA,否则会提示无设备连接
- 跟AI对话,让AI编译,例如预览testai
-
运行工程
- 前提是有设备链接到IDEA,否则会提示无设备连接
- 跟AI对话,让AI编译,例如运行testai
-
- 刚才出现了卡密问题,可以让Cursor进行修复后继续运行
-
投喂文档给AI
- 在和AI对话框中输入@符号,选择Docs,再次选择Add new doc,把EC的文档地址喂给AI,让AI自己抓取并理解
-
更多功能
- 让AI自动代码、自助分析日志的功能,需你自己摸索,CLI提供的命令是为了告诉发生了什么,AI再去分析如何去做
CLI 命令 SKILL.md
- 以下的SKILL.md文件内容,是为了让AI抓取的,可以忽略
---
name: ec-android-cli
description: >-
中文说明:EasyClick ec-android-cli 的安装前提、子命令、参数与示例。
在用户或 Agent 需要执行、脚本化或排查该 CLI 时使用;不包含实现细节。
---
# ec-android-cli 使用说明
## 使用前提
- 本机已启动 **IntelliJ IDEA**,并已加载 **EasyClick 开发工具**插件;插件需处于可响应命令的状态。
- 命令行中的 **模块名** 与 IDEA 里该脚本工程对应的 **模块名** 一致。
- 多窗口、多工程时,建议用 **`-p`** 传入与 IDEA 中打开路径一致的 **工程根目录**,便于匹配到正确实例。
## 程序名与帮助
- **本仓库自带可执行文件**(相对仓库根目录):**`ec_work_config/android/bin/ec-android-cli`**
- 在仓库根下:`./ec_work_config/android/bin/ec-android-cli -h`
- Agent / 脚本优先使用该路径,避免依赖全局 PATH。
- 并且输出的日志格式设置为json格式
- 若本机已单独安装并加入 PATH,也可直接执行 **`ec-android-cli`**(与上述为同一程序;本地若改名,请将命令中的名称一并替换)。
- 查看总帮助:`./ec_work_config/android/bin/ec-android-cli -h`(或在 PATH 已配置时:`ec-android-cli -h`)
- 查看子命令帮助:`./ec_work_config/android/bin/ec-android-cli <子命令> -h`
## 子命令一览
| 子命令 | 作用 |
|--------|------|
| `preview` | 预览工程 |
| `run` | 运行工程 |
| `stop` | 停止当前运行 |
| `build` | 构建 IEC |
| `monitor` | 仅持续输出日志流(不要求 `-m`) |
**说明:** `preview` / `run` / `stop` / `build` 均需 **` -m`(模块名)**;`monitor` 不需要模块名。
## 通用参数(`preview` / `run` / `stop` / `build`)
| 参数 | 含义 |
|------|------|
| **`-m` / `--module`** | **必填**。IDEA 模块名。 |
| **`-p` / `--project`** | 可选。工程根目录路径(与 IDEA 中打开路径一致)。 |
| **`-f` / `--format`** | 可选。日志行格式:`text` 或 `json`;**省略时默认为 `json`**。 |
| **`-o` / `--log`** | 可选。将日志**追加**写入指定文件路径。 |
| **`-k` / `--stop-on`** | 可选。日志中**包含**该子串时,打印提示并**退出**(结束本次日志监控)。多个条件为**或**关系时,可用 **`|||`** 连接多个子串(任一子串命中即退出)。 |
| **`-w` / `--monitor-logs`** | 可选。`true` / `false`。**`preview` / `run` / `stop`**:未写 `-w` 时视为 **`true`**(持续跟日志至 **Ctrl+C** 或命中 `-k`)。**`build`**:未写 `-w` 时为 **`false`**(操作结束后即结束日志)。显式写 `-w true` / `-w false` 可覆盖。 |
| **`-r` / `--random-log`** | 可选。`true` / `false`。为 `true` 时在 **`ai_logs/`** 下自动生成日志文件名;**不可与 `-o` 同时使用**。 |
**约束:** 凡写出的可选参数须带**有效取值**;**`-r` 与 `-o` 不能同时使用**。
**`-k` 多关键字(通用):** 所有支持 **`-k`** 的子命令 ——**`preview` / `run` / `stop` / `build` / `monitor`**——均可用 **`|||`** 连接多个子串,表示**或**:日志中**任一**子串出现即结束本次监控。
**`preview` 专用:** 未写 **`-k` / `--stop-on`** 时,默认停止关键字为 **`执行UI结束`**;未写 **`-w`** 时默认**持续监控日志**(等同 `-w true`)。
**`run` 专用:** 未写 **`-k`** 时,默认停止关键字为 **`脚本已运行结束`**;未写 **`-w`** 时默认**持续监控日志**(等同 `-w true`)。
**`stop` 专用:** 未写 **`-k`** 时,默认在日志中出现 **`停止失败`**、**`停止运行成功`** 或 **`无设备连接`** 时结束监控(**任一**命中即可);未写 **`-w`** 时默认**持续监控日志**(等同 `-w true`)。若显式传入 **`-k`**,则以你设置的关键字为准(仍可用 **`|||`** 表示多关键字“或”)。
**`build`(编译 IEC)专用:** 未写 **`-k`** 时,默认在日志中出现 **`release.iec`**、**`编译IEC成功`** 或 **`编译失败`** 时结束本次日志监控(**任一**命中即可)。
## `monitor` 专用参数
仅日志流;不使用 `-m`、`-p`、`-w`。
| 参数 | 含义 |
|------|------|
| **`-f` / `--format`** | 同上文,`text` 或 `json`,默认 `json`。 |
| **`-o` / `--log`** | 同上文。 |
| **`-k` / `--stop-on`** | 同上文。 |
| **`-r` / `--random-log`** | 同上文(勿与 `-o` 同用)。 |
## 日志输出习惯
- 常规日志多输出到 **标准错误(stderr)**;使用 **`-o`** 或 **`-r`** 时还会写入文件。
- 默认日志行格式为 **JSON**,除非指定 **`-f text`**。
## 示例
# 以下假定当前目录为仓库根;`EC` 即 ./ec_work_config/android/bin/ec-android-cli
EC=./ec_work_config/android/bin/ec-android-cli
$EC preview -m app
$EC preview -m app -f json
$EC run -m app -f json -o /tmp/easyclick.log
$EC run -m app -r true
$EC run -m app -w false
$EC stop -m app
$EC build -m app
$EC monitor
$EC monitor -f text -o /tmp/monitor.log -k "完成"
多工程时示例:
./ec_work_config/android/bin/ec-android-cli run -m app -p /path/to/project/root