mcpField
A
android-source-search

android-source-search

github.com/rcosteira79开发165146 次安装6 周前更新
代码仓库

关于 android-source-search

面向 Android 开发者的源码查找参考技能,介绍如何检索和查看最新 AOSP 与 AndroidX 源码。优先使用 android-sources MCP,并说明工具不可用时的网页检索方案。

主要功能

  1. 01优先使用 MCP 查找源码
  2. 02通过 Gitiles 获取 AOSP
  3. 03通过 GitHub 获取 AndroidX
  4. 04查找类与方法的指引
  5. 05检索最新源码的流程

适用场景

  1. 01检查 Android 框架类或方法
  2. 02查找 AndroidX 源码文件与示例
  3. 03路径未知时搜索源码

MCP 相关

建议在工具可用时使用 android-sources MCP 查找类、方法、层级、文本和类型;同时提供备用源码获取方式。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rcosteira79/android-skills --skill android-source-search

安装后在 Claude Code 中输入/android-source-search确认已加载。

详细介绍

Android 源码搜索

两棵源码树,两种访问策略。AOSP 位于 android.googlesource.com(Gitiles);AndroidX 位于 GitHub。cs.android.com 会阻止自动抓取——它只是供人工浏览的 JS SPA(绝不要对它使用 WebFetch)。

首选:android-sources MCP

如果可以使用 mcp__android-sources__* 工具,始终优先使用它们,而不是 WebFetch/gh——源码在本地,查询耗时不到 10 毫秒:

目标MCP 工具
按名称/模式查找类search_classes(glob,例如 *ViewModel*)
读取完整类/方法/成员lookup_class / lookup_method / list_class_members
类层次结构get_class_hierarchy
跨源码搜索文本/正则表达式search_in_source
列出 AndroidX 构件版本list_available_versions
定义/引用/类型信息(LSP)goto_definition / find_references / get_type_info

只有在 MCP 工具不可用时,才使用以下 WebFetch/gh 策略。

回退方案:WebFetch + gh

AOSP(框架内部实现、@hide API、内部常量、默认属性值)→ Gitiles。 原始文本采用 base64 编码,体积更小:

https://android.googlesource.com/platform/frameworks/base/+/refs/heads/main/{path}?format=TEXT

使用 refs/heads/main(当前默认分支),或使用诸如 android-14.0.0_r74 的标签来指定 API 级别。主要仓库:platform/frameworks/base(core/java/android/ → View/Activity/Context;services/core/java/ → 系统服务;core/res/ → 默认属性/样式)、platform/libcore(ojluni/src/main/java/ → Java 核心库)。

AndroidX(androidx.* 源码和示例)→ GitHub。 通过 raw.githubusercontent.com 获取文件内容;通过 gh api 获取目录列表:

https://raw.githubusercontent.com/androidx/androidx/androidx-main/{path}
gh api repos/androidx/androidx/contents/{path} --jq '.[].name'

示例与源码位于同一位置,路径为 samples/ 子路径下的 {ClassName}Samples.kt。主要路径前缀:Compose UI compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/,Foundation compose/foundation/foundation/src/commonMain/kotlin/,Animation compose/animation/animation/src/commonMain/kotlin/。AndroidX 也 镜像在 Gitiles 上(platform/frameworks/support、androidx-main),但对于 androidx.*,GitHub 的目录结构是规范且文档更完善的路径——优先使用它。

未知路径时

使用 cs.android.com 作为人工搜索界面(不要使用 WebFetch——它是 JS SPA)来定位类/文件,然后通过 Gitiles(AOSP)或 raw.githubusercontent.com / gh api(AndroidX)获取内容:

https://cs.android.com/search?q=ClassName+methodName&ss=android    # &ss=androidx for AndroidX

两棵源码树都经常变动——务必获取当前源码,不要依赖记忆中的行号。

评论

支持 Markdown