mcpField
A
AndroJack MCP

AndroJack MCP

本地服务
github.com/VIKAS9793开发工具212 周前更新

关于 AndroJack MCP

AndroJack MCP 面向 Android 工程开发中的编码助手,以实时的官方 Android 和 Kotlin 文档为回答提供依据。其专用工具和代码验证器可检查 API 选择及部分已弃用或移除的模式。

主要功能

  1. 01实时查询官方 Android 与 Kotlin 资料
  2. 0223 种专用工具
  3. 03依据 34 条规则验证代码
  4. 04检查已移除和弃用的 API
  5. 05指导工具调用的依据规则

适用场景

  1. 01查询当前 Android API 指引
  2. 02检查生成代码中的弃用模式
  3. 03依据文档确定 Compose 和 Gradle 方案

MCP 相关

向 MCP 客户端提供 23 种 Android 工程工具,包括实时文档检索和代码验证。README 还介绍了可选的依据规则,要求助手在生成代码前调用相关工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vikas9793-androjack": {
"command": "npx",
"args": [
"-y",
"androjack-mcp"
]
}
}
}
启动命令npx -y androjack-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmandrojack-mcp2.1.0

工具

23

收录的工具列表 · 更新于 2 周前

参数类型必填说明
querystring是搜索查询——请具体说明。例如:'Compose LazyColumn performance'、'WorkManager constraints'。

详细介绍

AndroJack 横幅

AndroJack — Android 全能助手

README 配图 README 配图 README 配图

AndroJack MCP version 2.1.0

这款 MCP 服务为你的 AI 编码助手提供实时、经过验证的 Android 知识,让它依据官方资料而非记忆进行构建。

在 VS Code 中安装 在 Claude Desktop 中安装 在 Cursor 中安装 添加到 Kiro 在 npm 上查看


官方产品页面 在 YouTube 上观看 AndroJack 演示


也适用于: Windsurf · VS Code Copilot · Google Antigravity · JetBrains AI — 请参阅下方的手动配置 ↓

VS Code 分发: 也已在 VS Code Marketplace 上架,名称为 AndroJack MCP for VS Code。


目录


🔥 催生此工具的危机

2025 年,Stack Overflow 开发者调查询问了 49,000 名开发者使用 AI 编码工具的体验。调查结果足以让每位 Android 工程师警醒:

  • 84% 的开发者现在使用 AI 编码工具,高于前一年的 76%。
  • 对 AI 准确性的信任度在一年内从 40% 暴跌至仅 29%。
  • 2025 年 Stack Overflow 的所有访问量中,有 35% 是开发者调试和修复 AI 生成的代码所致。

使用率与信任度之间的差距并非偶然,而是结构性问题的产物:**AI 模型预测的是 token,而不是 API。**它们基于世界某个时间点的快照进行训练,因此无法得知 API 30 有哪些变化、Google I/O 2025 发布了什么,或 Google Play 现在在审核时会拒绝什么内容。

对于 Android 开发者而言,这种失效模式尤为危险。Android 拥有移动开发领域变化最快的生态系统——每月都会推出新的 Compose BOM,Navigation 3 在 Nav2 推出七年后终于转为稳定版,Android 16 则改写了屏幕方向锁定的规则——而大多数 AI 工具的训练数据在你使用时,早已过时六个月到两年。

结果不只是糟糕的代码,而是信心十足的糟糕代码。


⚡ 实际开发中会出什么问题 — 记录在案的证据

这些并非假设性的风险,而是真实开发项目中有记录的故障模式。

Navigation 3 幻觉(2026 年 1 月)

Atomic Robot 发布的一份案例研究记录了一次正在进行的 Navigation 2 → Navigation 3 迁移,同时使用了 Gemini 和 Claude,且两者都启用了互联网访问。结论原文如下:

“大模型仍会对版本产生幻觉。即使可以访问互联网,两个 Agent 仍想使用过时的候选版本,而不是稳定版 1.0.0。”

Navigation 3 在经历了七年的同一套库之后,于 2025 年 11 月发布稳定版。这是一次彻底的架构重构:返回栈现在是普通的 Kotlin 列表,庞大的导航图已不复存在,NavDisplay 取代了 NavController。Google 自己的迁移指南非常清楚 AI 工具会在这方面出错,因此现在加入了特殊的 “AI Agent:” 注释——直接嵌入官方文档、供 AI 工具遵循的说明。2026 年,AI 工具为新的 Compose 项目生成 Nav2 代码,并非犯了一个小错误,而是造成了架构上的不一致,必须彻底重写才能修复。

Compose 弃用更新不停

Jetpack Compose 每月都会发布一个新的 BOM。自大多数模型的训练截止时间以来,这些 API 已发生变化:

API状态出错之处
ContextualFlowRow / ContextualFlowColumn在 Compose 1.8 中已弃用AI 仍会生成它们——今天触发编译警告,明天就会被移除
TestCoroutineDispatcher已从 coroutines-test 1.8+ 中移除AI 仍会生成它——导致 CI 中的测试出现非确定性失败
FlowRow 溢出参数在 1.8 中已弃用在运行时出现细微的行为回归,在大多数 lint 配置中不会被发现
AnchoredDraggableState.confirmValueChange已弃用锚点边界处的拖动行为不正确
新项目中的 Navigation 2已被 2025 年 11 月发布稳定版的 Nav3 取代架构走入死胡同,必须重写才能修复

以上每种情况都能通过编译。大多数情况下也能正常运行。问题会在之后显现为 CI 不稳定、UI 回归,或 Play Store 审核失败。

Android 16 / API 36 强制要求(自 2026 年 8 月 31 日起生效)

Android 16 对平台进行了影响每款已发布应用的更改:在 ≥600dp 的设备上——平板、折叠屏设备、ChromeOS——应用不再能锁定屏幕方向或限制调整大小。自 2026 年 8 月 31 日起,Google Play 要求新应用和更新将 API 36 设为目标版本(可申请延期至 2026 年 11 月 1 日)。Android 17 / API 37 将移除剩余的退出选项。

如今,AI 工具若生成 android:screenOrientation="portrait" 或 android:resizeableActivity="false",就会生成触发 Play Console 应用兼容性警告、无法通过大屏质量检查,并导致应用在 Play Store 搜索结果中排名下降的代码。

这对业务的影响并非假设:折叠屏用户在应用上的支出是仅使用手机用户的 14 倍。同时使用平板和手机的用户支出是仅使用手机用户的 9 倍。FlipaClip 在实现自适应布局后的四个月内,平板用户增长了 54%。

KMP 的静默失败

Kotlin Multiplatform 在 2025 年成为主流——新发布的 KMP 库超过 900 个,Room 增加了 KMP 支持,企业现在也会专门招聘具备 KMP 技能的人才。当 KMP 项目中的开发者要求 AI 工具添加数据库支持时,AI 生成的却是仅适用于 Android 的 Room 代码。代码可以编译,在 Android 上也能完美运行。**iOS 构建却会失败。**开发者花费数小时调试后,才意识到根本原因:他们的 AI 工具不知道 KMP 的存在。


🧩 AndroJack 的作用

AndroJack 是一个以文档为依据的 Android 工程 MCP 服务。它为你的 AI 编码助手提供 23 个专用工具,用于从官方 Android 和 Kotlin 来源获取实时、经过验证的答案,而不是根据过时的训练数据进行预测。

它不会让 AI 变得更聪明,而是让 AI 对证据负责。

可以把它看作面向大模型的构建前代码检查工具。其他工具检索文档时,AndroJack 则充当严格的架构把关者。

Without AndroJack:  You ask → AI predicts from stale weights → Code (possibly wrong)

With AndroJack:     You ask → AI calls tool → Tool fetches official source live
                             → AI reads verified answer → Code (grounded)

⚠️ 诚实说明激活模式——两个层级

重要

安装 AndroJack 前,最重要的是了解这一点。

层级激活内容AI 的行为
层级 1 — 仅工具IDE 中注册了 23 个工具AI 可能会调用正确的工具。这取决于 IDE 和 AI 的判断。
层级 2 — 工具 + 依据约束关卡23 个工具 + 强制的生成前规则手册AI 在编写代码前,必须针对每项决策调用正确的工具。
层级 3 — 完整回环层级 2 + android_code_validatorAI 会根据 34 条规则验证每个代码块。错误必须在用户看到代码前修复。

层级 1 是被动的。 工具虽然可用,但由 AI 决定何时使用。构建 Compose 界面的 AI 可能会调用 architecture_reference,却跳过 material3_expressive,于是悄无声息地交付违反 M3E 规范的代码。

层级 2 是主动的。 androjack_grounding_gate 系统提示词会将每种任务类型映射到相应的工具。要构建 Compose UI?AI 必须先调用 material3_expressive。要添加依赖项?必须调用 gradle_dependency_checker。没有例外。

层级 3 会形成回环。 AI 返回代码给用户前,android_code_validator 会检查它生成的每个代码块。34 条规则涵盖已移除的 API、已弃用的模式、对 Android 16/17 的兼容性,以及 Compose-First 迁移信号。注释会被忽略,因此像 // replaced AsyncTask 这样的迁移说明不会触发误报 FAIL。结果会以文本形式返回,也会以带有输出架构的 structuredContent 返回。判定为 FAIL 意味着 AI 必须修复并重新验证,用户不会看到有问题的代码。

→ 要获得完整的依据约束,请始终启用层级 2 + 层级 3。请参阅下文“获取完整保障”。


🪲 即使在层级 3,仍可能出错的地方

重要

AndroJack 是一个文档依据约束和 API 验证工具。它不是 Compose 布局引擎、设计系统强制执行器或运行时渲染器。层级 3 能捕获已移除的 API 和已弃用的模式,但无法捕获 Android 中所有类型的错误。这并非 AndroJack 的局限,而是对一个视觉化、由运行时渲染的 UI 框架进行静态文本分析的根本属性。

以下错误是在一个使用 AndroJack 层级 2(v1.4.0)构建的真实 Android 应用中遇到的。我们在此如实记录,方便你明确了解需要留意的问题,以及应当使用哪些其他工具。

✅ 层级 3 能捕获的问题
// ❌ REMOVED — android_code_validator fires: REMOVED_ASYNCTASK
class MyTask : AsyncTask<Void, Void, String>()

// ❌ REMOVED — fires: REMOVED_TEST_COROUTINE_DISPATCHER
val dispatcher = TestCoroutineDispatcher()

// ❌ DEPRECATED — fires: DEPRECATED_CONTEXTUAL_FLOW_ROW
ContextualFlowRow { Text("hello") }

// ❌ LEAK — fires: GLOBALSCOPE_LAUNCH
GlobalScope.launch { fetchData() }
⚠️ 第 3 级无法捕获的问题

警告

以下问题来自真实项目。这些代码符合当前 API 的 Compose 规范,但违反了设计系统约束、无障碍最低要求或架构边界。静态文本扫描无法检测这些问题。

Bug PH-UI-001 — 分段按钮文本截断
// Compiles and runs. Level 3 sees no violation.
// The bug: Text inside MultiChoiceSegmentedButtonRow truncates because a
// fixed height modifier prevents the Roboto Flex variable font from expanding.
MultiChoiceSegmentedButtonRow {
    SegmentedButton(/* fixed height modifier */) {
        Text("Light")
    }
}

说明

这是一个缺失问题。正确的修饰符缺失了——没有错误的修饰符。请使用视觉测试或运行时检查。

Bug PH-UI-003 — 禁用按钮对比度不达标
// Correct Material 3 API. Level 3 sees no violation.
// The bug: disabled state colours fail WCAG AA 4.5:1 contrast against surface.
Button(enabled = false, onClick = {}) {
    Text("INITIALIZE VAULT")
}

说明

这是一个运行时视觉属性问题。请使用 paparazzi 截图测试或 Google 的 Accessibility Scanner。

Bug PH-AR-004 — 向最终用户呈现原始堆栈跟踪
// A missing try/catch produces no pattern match.
class VaultViewModel : ViewModel() {
    fun initializeVault() {
        viewModelScope.launch {
            val result = repository.initialize() // Missing try/catch
            _uiState.value = UiState.Success(result)
        }
    }
}

警告

UDF 架构违规需要使用自定义规则的 Detekt,或验证异常映射的单元测试。


🗂️ 深度防御:为每类问题选择合适的工具

问题类别真实示例合适的工具
已移除 / 已弃用的 APIAsyncTask、TestCoroutineDispatcher✅ AndroJack 第 3 级
Android 16 违规screenOrientation、resizeableActivity=false✅ AndroJack 第 3 级
Android 17 违规static final 反射、未获授权的 LAN 访问✅ AndroJack 第 3 级
架构(标记了根因)GlobalScope 泄漏到 UI✅ AndroJack 第 3 级
缺少修饰符 / 缺失约束PH-UI-009(innerPadding)🔧 Android Lint / IDE 检查器
运行时对比度 / 颜色问题PH-UI-003(WCAG)🔧 paparazzi + Accessibility Scanner
触控目标违规PH-UX-008🔧 Accessibility Scanner
架构边界(缺少捕获)PH-AR-004(将堆栈跟踪显示到 UI)🔧 Detekt + ViewModel 单元测试

🎯 关键论点

“你的 agents.md 文件能告诉我上周二发布的 Gradle 版本吗?”

任何 Markdown 文件都做不到。.cursorrules 中的规则做不到。SKILL.md 也做不到。

✅ 只有实时工具调用才能做到。

这正是 AndroJack 存在的目的——当前生态系统中没有其他工具专门为 Android 提供这项能力。

你的需求agents.md / SKILL.mdAndroJack MCP
按特定方式格式化输出✅ 完美也能做到
遵循团队约定✅ 完美也能做到
获取当前最新的 Gradle 版本❌ 根据记忆猜测✅ 实时获取
AsyncTask 是否已移除?❌ 可能有误✅ 根据 SDK 验证
Android 16 Play Store 规则❌ 不知道✅ 官方来源

提示词工程决定 AI 如何响应。MCP 决定 AI 知道什么。


✨ AndroJack 涵盖的内容 — 23 个工具

#工具功能没有它会出现的问题
1🔍 search官方文档摘录 — Google Developer Knowledge API(可选密钥)或经过验证的规范页面索引AI 根据记忆推理 — 今天可能已经不准确
2⚠️ component检查 40 多个 API 是否已弃用或移除编译正常,却在运行时或审核时出问题
3📐 architecture40 多个主题的指南 — MVVM、Nav3、MVI……AI 给出 2022 年的建议;遗漏 Nav3
4🐛 debugger解析堆栈跟踪 → 官方文档 + Issue Tracker 链接AI 为已知问题臆造修复方案
5📦 gradle从 Google Maven 实时查询(优先返回稳定版,并标记预发布版本)+ BOM 解析Compose BOM 过时,使用 KAPT 而非 KSP
6📊 api-levelAPI 21–36 表格、minSdk 警告在 minSdk 为 21 的应用中调用 API 26+ 功能
7🎯 kotlin10 种模式 — 协程、MVI、Compose 状态在 UI 中使用 GlobalScope.launch、runBlocking
8🎨 m3eMaterial 3 Expressive 组件与动效在 M3E 应用中使用 M2 MaterialTheme
9🔐 permissions40 多项权限规则与契约使用已弃用的 requestPermissions()
10🧪 testing官方的单元测试 / Compose UI 测试模式在测试中使用 Thread.sleep();缺少 Hilt
11🏗️ buildR8、libs.versions.toml、签名、AAB使用 implementation 而非 ksp
12📱 large-screenWindowSizeClass(5 个断点,包括 Large/XL)、自适应 Scaffold折叠屏和桌面设备上只显示手机布局
13🚀 scalabilityPaging 3、WorkManager、模块化简单粗暴地使用 loadAll();列表中的键不稳定
14🧭 nav3Nav3(2025 年 11 月)— 场景、迁移AI 生成 Nav2 的死胡同方案
15✅ complianceAPI 36 / Android 16 / 16 KB 页面大小更新遭拒 — 自 2026 年 8 月 31 日起,Play 已要求 targetSdk 为 36
16🌐 kmpRoom KMP、Room 3(稳定版,androidx.room3)、Ktor、源集在 KMP 项目中使用仅适用于 Android 的代码
17🤖 ondevice-aiAICore、ML Kit Gen AI、Gemini Nano、AppFunctions(设备端 MCP)需要离线时却只能使用云端 AI
18📋 policyPlay Store 年龄限制、计费开放性、数据安全因政策变更不明而导致应用遭拒
19🥽 xrAndroid XR SDK、SpatialPanel、Orbiter只能作为 2D 面板运行,无法发挥空间体验的价值
20⌚ wearTiles、Health、适用于 Wear OS 的 M3 Expressive在圆形屏幕上使用手持设备模式
21🛡️ validatorLevel 3 循环验证关卡 — 34 条规则、结构化输出,也可在 CI 中运行AI 不经检查就发布有问题的代码
22🆕 api17Android 17 / API 37(稳定版)— static final、LAN、OTP、MessageQueue、原生库、Handoff应用在 API 37 目标设备上崩溃
23🪪 dev-verificationDeveloper Verification Program — 时间表、注册、CI/CD应用无法在认证设备上安装(自 2026 年 9 月 30 日起在 4 个国家/地区强制执行)

🚀 快速开始 — 无需安装

选项 1 — 交互式 CLI(v2.1.0)✨ 推荐
npx -y [email protected] install

启动带有完整动画效果的终端向导,自动检测 VS Code、Cursor、Claude、Windsurf、JetBrains、Kiro 和 Antigravity。

选项 2 — 定向安装
# Preview detected IDEs and config paths
npx -y [email protected] install --list

# Auto-detect all
npx -y [email protected] install --auto

# Install to a specific IDE
npx -y [email protected] install --ide=cursor
npx -y [email protected] install --ide=claude
npx -y [email protected] install --ide=vscode
npx -y [email protected] install --ide=windsurf
npx -y [email protected] install --ide=jetbrains
npx -y [email protected] install --ide=kiro
npx -y [email protected] install --ide=antigravity
选项 3 — 无需 IDE 即可测试
npx -y @modelcontextprotocol/inspector npx -y [email protected]
选项 4 — 在 CI 中强制执行规则(2.1.0 新增)

每个 pull request 都运行与约束 Agent 相同的规则引擎 — 包括 Agent 未修改的代码:

npx -y [email protected] validate app/src --target-sdk=37            # exit 1 on errors
npx -y [email protected] validate . --format=sarif > androjack.sarif  # GitHub code scanning
# .github/workflows/androjack.yml
- run: npx -y [email protected] validate . --target-sdk=37 --format=sarif > androjack.sarif || true
- uses: github/codeql-action/upload-sarif@v3
  with: { sarif_file: androjack.sarif }
- run: npx -y [email protected] validate . --target-sdk=37   # fails the job on errors

标志:--format=text|json|sarif、--target-sdk=N、--min-sdk=N、--fail-on=error|warning|never。退出码:0 表示通过,1 表示存在违规,2 表示用法错误或无法完成全部检查(没有匹配文件、文件超过 1 MiB,或达到 20k 文件上限)— 不会因不完整扫描而判定通过。

可选配置
变量作用
ANDROJACK_DEVELOPER_KNOWLEDGE_API_KEY使用 Google 的 Developer Knowledge API 作为文档搜索后端(对 developer.android.com 进行全文搜索)。未设置时,AndroJack 使用经过验证的规范页面索引。**隐私:**搜索查询(包括来自 android_debugger 的异常消息)会发送给 Google。
ANDROJACK_OFFLINE=1不发送任何出站请求——工具仅返回规范链接。适用于隔离网络环境。
ANDROJACK_HTTP_TOKENserve 要求提供 Authorization: Bearer <token>。设置 Google API 密钥时,远程绑定必须配置此项。
ANDROJACK_ALLOW_REMOTE_HTTP=1等同于 serve --allow-remote;也适用于 --http。
ANDROJACK_HTTP_STATELESS=1 / serve --stateless不使用 MCP 会话——每个请求都独立完整(适用于负载均衡器)。

🧩 手动配置 / 复制 / 粘贴

如果你更愿意手动连接服务,或想在写入任何内容前检查确切的 JSON:

  • 运行 npx -y [email protected] install --list,预览检测到的 IDE 和目标配置路径。
  • 可直接粘贴的示例位于 config/。
IDE / 客户端配置文件
Claude Desktopconfig/claude_desktop_config.json
Cursorconfig/cursor_mcp.json
VS Code / GitHub Copilotconfig/vscode_mcp.json
Windsurfconfig/windsurf_mcp.json
Android Studio / IntelliJconfig/jetbrains_mcp.json
AWS Kiroconfig/kiro_mcp.json
Google Antigravityconfig/antigravity_mcp.json

所有示例默认都让 AndroJack 在本地运行,并通过 npx -y [email protected] 运行已发布的软件包。


📍 生态系统:AndroJack 与 Google 第一方 Agent 工具

Google 现在提供了自己的 Android Agent 技术栈。坦诚说明它们之间的重叠:

Google Developer Knowledge MCP/APIAndroid CLI + Android 技能 + Knowledge BaseAndroJack MCP
用途检索文档(搜索、获取、回答)运行工具链;为 Agent 提供任务指令;android docs search强制执行:验证代码、编码有时效性的强制要求、把关 CI
检索质量当前最佳——Google 自己的索引Google 自己的索引设置密钥后使用 Google API;否则使用经过验证的规范页面索引
会导致构建失败吗?否否(技能仅提供建议;android studio check 需要 Studio)会——确定性的规则 ID、退出代码、SARIF
设置Google Cloud 项目 + API 密钥安装 CLInpx [email protected]——无需账号
运行位置远程(googleapis.com)本地 CLI本地 stdio / HTTP,可离线运行

**推荐设置:**使用 Google 工具进行检索和获取任务技能,并将 AndroJack 用作强制执行步骤——在 Agent 循环中使用 android_code_validator,并在 CI 中使用 androjack-mcp validate。AndroJack 不会试图在搜索方面胜过 Google 自己的文档索引。设置 ANDROJACK_DEVELOPER_KNOWLEDGE_API_KEY 后,它会使用该索引。


🔒 安全与隐私

属性实现方式
域名允许列表仅向 Google/Android/Kotlin 官方域名发送请求,使用默认 HTTPS 端口,不包含嵌入式凭据
重新验证重定向每次重定向都会根据允许列表进行检查(2.1.0)——允许列表中的主机无法将抓取请求重定向到其他位置
不可信内容边界所有抓取的文本都会经过规范化、清除注入模式和伪造的边界标签,并在到达 Agent 前标记为不可信
仅限 HTTPS对外抓取文档时拒绝非 HTTPS URL,限制正文大小,并在重试日志中移除查询字符串
默认本地运行serve 仅绑定到环回地址,除非你明确传入 --allow-remote
HTTP 加固验证 Origin/Host,限制正文大小,限制会话数并逐出空闲会话,可选的 Bearer 令牌,无状态模式
Agent 身份透明User-Agent: AndroJack-MCP/2.1.0
只读所有 23 个工具均标注 readOnlyHint: true、destructiveHint: false、idempotentHint: true
凭据无需凭据。可选的 Google API 密钥仅通过请求头发送,不会出现在 URL 或日志中
离线模式ANDROJACK_OFFLINE=1 可确保不发送任何对外请求
安全策略披露流程和受支持版本见 SECURITY.md

📋 更新日志

v2.1.0 — 修复失效功能、加固有效功能,并在 CI 中强制执行
  • 文档搜索现在能真正返回文档。 v2.0 抓取客户端渲染的搜索页面,对任何查询都无法返回文档。2.1 使用 Google 的 Developer Knowledge API(可选密钥)或经过验证的规范页面索引。
  • 安全: 修复重定向允许列表绕过问题;现在所有抓取内容都会经过不可信内容边界(v2.0 声称有此机制,但实际上只有一个工具执行了此操作);修复边界标签伪造及零宽/全角字符绕过问题;修复 HTTP 会话耗尽型 DoS 问题;新增 Bearer 身份验证和无状态模式;修复 7 个依赖项漏洞(其中 1 个为严重漏洞)。
  • 不再自信地给出错误答案: 修复 Row →“已弃用”、Task →“已移除”注册表中的误报;修正 Android 17 游戏豁免;移除捏造的 Handoff API;Room 3 已稳定(此前被描述为 alpha);Google Maven alpha 版本不再标记为“最新稳定版”;替换 19 个失效的文档链接。
  • 验证器: 忽略注释(避免 Agent 陷入修复循环);检测 Kotlin DSL kapt(...);修正 API 37 阈值;新增 6 条 Android 17 规则(共 34 条);结构化输出。
  • 新增: 用于 CI 的 androjack-mcp validate CLI(text/JSON/SARIF);规则目录的 MCP 资源;完整的工具注释;AppFunctions 指南;Android Studio Rabbit 1 / AGP 9.4。
  • 降低令牌成本: tools/list 从约 28.5 KB 降至约 20.5 KB;会话中重复的相同结果会替换为简短指针(传入 refresh: true 可重新获取)。
  • 测试: 从 85 项增至 196 项(另有 1 项需选择启用的实时测试),包括通过真实 MCP SDK 客户端运行的 17 场景黑盒 UAT 套件。参见 test/uat/UAT_PLAN.md。

完整详情见:CHANGELOG.md。

v2.0.0 — 安全加固、Compose 优先、开发者验证
  • 用于防御间接提示词注入的内容清理器 — src/content-sanitizer.ts 会在任何外部获取的文本到达调用方 Agent 的上下文之前,中和结构性注入模式(伪造的角色标记、重置指令的措辞)。来自 issuetracker.google.com 的 android_debugger 结果——这是唯一一个会索引用户提交的自由文本的允许域名——会被明确标记为不可信数据。
  • 已修复依赖项漏洞 — 通过更新 cheerio,修复了传递依赖 undici/qs 中的 7 个漏洞(其中 3 个为高危)。没有破坏性变更,已发布的依赖树中漏洞数为 0。
  • 工具 23:android_developer_verification — Google 的开发者验证计划将于 2026 年 9 月 30 日开始强制执行(首先覆盖巴西、印度尼西亚、新加坡、泰国;2027 年全球实施)。内容涵盖注册路径、时间线、企业豁免以及 CI/CD 批量注册 API。
  • 反映 Compose 优先的平台转向 — 截至 2026 年 5 月 19 日,Android UI 开发正式采用 Compose First;凡涉及 View 的模式(Fragments、RecyclerView、ViewPager),在相关查询中都会标记为维护模式。此信息直接取自 Google 官方公告,避免内容在过时后仍未明确标注。
  • Compose 1.11 v2 测试框架 — 提供新默认行为 StandardTestDispatcher 的完整迁移指南,以及用于标记旧有假设的验证器规则(UNCONFINED_DISPATCHER_COMPOSE_TEST)。
  • Navigation 3 场景装饰器(1.1) — 无需逐屏感知,即可实现持久显示的界面元素(底部栏、侧边栏、对话框)。
  • 已更正 Android Studio 代号 — 之前落后了两个完整代号(“Panda 2”)。现已正确更新为当前稳定版 Quail (2026.1.x),AGP 9.2.0。
  • Android Skills 定位 — 介绍 Google 于 2026 年 4 月推出的第一方 Android Skills/CLI,并将 AndroJack 的验证器定位为生成后的配套强制检查关卡,而非竞争性的检索层。
  • 28 条验证器规则(此前为 26 条)— 新增 UNCONFINED_DISPATCHER_COMPOSE_TEST 和 NEW_FRAGMENT_CLASS_COMPOSE_FIRST。
  • 已移除虚构的版本号 — 之前某次会话中的依赖版本目录示例列出了几个未经验证的版本号。现已替换为仅包含已确认的值,并明确使用 CHECK_LIVE_VIA_gradle_dependency_checker 占位符。
  • 完整版本同步 — 修复了 src/version.ts 更新后未同步到 package.json、所有 IDE 配置文件及清单文件的问题;现已将版本同步列为发布检查清单项目。
v1.7.1 — 工程加固与社区功能对齐
  • 54 项测试覆盖 — 为验证器规则、HTML 解析器、LRU 缓存和 HTTP 安全层实现了全面的单元测试和契约测试。
  • 发现功能对齐 — 修复 /.well-known/mcp 端点,使其能够正确报告 tools: 22。
  • 依赖项清理 — 移除 node-fetch(改用原生 fetch),并清理过时的 overrides,使供应链更加简洁。
  • 规则加固 — 改进对 NavHost 和 BottomAppBar 的 Compose 组件检测。
  • URL 修复 — 修复了 Android 17 ACCESS_LOCAL_NETWORK 和 handoff 的失效文档锚点。
v1.7.0 — 支持 Android 17 / API 37
  • 工具 22:android_api17_compliance — 提供 Android 17 平台稳定性的完整参考(2026 年 3 月 26 日)。
  • 扩展验证器规则 — (已在 2.1.0 中更正:此处最初声称有 31 条规则,其中包括从未发布的 Room 3.0 和 ACCESS_LOCAL_NETWORK 检查。实际规则数为:2.0.0 中从 26 条增至 28 条,2.1.0 中增至 34 条。)
  • WindowManager 1.5.0 — 新增 Large(1200dp)和 Extra-large(1600dp)断点及布局模式。
  • Room 3.0 alpha — 支持现代 SQLiteDriver 迁移路径。

👥 作者与所有权

Vikas Sahani — 产品负责人([email protected])
Claude AI — AI 工程负责人


MIT License © 2026 Vikas Sahani | SECURITY.md

开发 AndroJack,是因为 2025 年 Stack Overflow 的访问量中,有 35% 来自调试 AI 生成代码的开发者。
AndroJack 的存在,就是为了让你不必成为这些访问者之一。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。