SuperAPI AI 工具集

android-cli-code-skill

编程与开发

查看项目

更新于 10-16 05:58

技能介绍

用途

android-cli-code-skill 用于通过一个正在运行的 Android Studio 实例来导航和验证 Android/Kotlin 代码。它调用 Android CLI 的 android studio 子命令,利用 IDE 的语义索引,而不是对文本进行 grep 搜索。

主要能力

该技能提供以下子命令:

  1. 定位代码(替代 grep)

    • android studio find-declaration --project=<name> <Symbol>:返回定义所在的文件、行号及周边代码。
    • android studio find-usages --project=<name> [--short] <Symbol>:列出 main 和 test 中的每一处使用,格式为 file:line;--short 仅打印位置。
    • 这些命令使用 IDE 索引,因此能区分文本 grep 会混淆的同名但不同的符号。
    • <Symbol> 是类、函数或属性名,例如 LoginViewModel、fetchUser、isLoggedIn。
    • 当同名符号在别处被复用时,可向 find-declaration 传入 --context-file=<path> 以解析出目标符号。
  2. 构建前检查文件

    • android studio analyze-file --project=<name> <path>:返回该文件的 lint / inspection 发现(INFO / WARNING),例如从生产代码读取 @VisibleForTesting 成员,或依赖被声明两次。
    • 在编辑文件后运行,可在昂贵的 Gradle 构建之前捕获问题,并用 find-declaration 追踪发现的原因。
  3. 渲染 Compose 预览

    • android studio render-compose-preview --project=<name> [--output-image-file=/tmp/preview.png] [--print-semantics] <path> <ComposableName>:将渲染的预览写入图片;配合 --print-semantics 会打印布局/语义树(文本和坐标),无需打开 IDE 即可验证 UI。
  4. 查询依赖版本

    • android studio version-lookup --project=<name> <id> [<id> ...]:每个 id 是 groupId:artifactId(如 androidx.window:window)、Gradle 插件 id,或 gradle / agp / sdk / ndk / studio 之一。返回当前稳定版和预览版,便于添加或升级依赖到真实版本而非猜测。
  5. 在 IDE 中打开文件

    • android studio open-file --project=<name> <path>

使用方式

首先用 android studio check 获取项目名。它会列出每个运行中的实例及其打开的项目:

$ android studio check
pid: 12345
version: Quail 2 | 2026.1.2 Canary 2
Projects:
    READY     MyApp        /Users/you/git/MyApp
    READY     AnotherApp   /Users/you/git/AnotherApp

使用 Projects 列表中的名称作为 --project=<name>(此处为 MyApp);它必须处于 READY 状态,表示 IDE 已完成索引。将 --project=<name> 传给下面每个命令。如果运行了多个 Studio 实例,还需传入 --pid=<pid> 以选择其中一个。

典型循环:理解、编辑、验证,每一步都使用索引:

  1. 用 find-declaration / find-usages 查看改动会影响什么。
  2. 编辑代码。
  3. 用 analyze-file(Compose 则用 render-compose-preview)在构建前验证。如果改变了符号形态,重新运行 find-usages。

如果 Studio 未运行:若 android studio check 显示没有 READY 项目,运行 studio <project-path> 启动它(JetBrains Toolbox 启动器;否则手动打开),然后重新运行 android studio check 直到项目变为 READY。

适用场景

  • 在大型代码库中准确查找符号的声明和引用,避免文本搜索的歧义。
  • 编辑文件后、进行 Gradle 构建前快速检查 lint / inspection 问题。
  • 无需打开 IDE 即可渲染并验证 Compose 预览。
  • 查询依赖的当前稳定版和预览版。
  • 在 IDE 中打开指定文件。

限制与规则

  • 必须先通过 android studio check 获取项目名;命令需要运行中的 Studio 且该项目已打开并处于 READY 状态。
  • 优先使用 find-usages / find-declaration 而非 grep:索引理解符号,而不仅是文本,这在大型代码库中尤为重要。
  • analyze-file 只报告发现,不修复它们;需阅读每条发现并自行决定。
  • 路径相对于当前目录或为绝对路径。
  • 如果运行了多个 Studio 实例,用 --pid=<pid>(来自 android studio check)指定目标。
  • 这些命令与 Android Studio 通信。若要驱动设备或模拟器 UI,请参见 android-cli-ui-automation-skill。