Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Android Code NavigationNew to Visual Studio Code? Get it now.
Android Code Navigation

Android Code Navigation

allen

|
10 installs
| (0) | Free
面向 Android 项目的 Java / Kotlin 代码跳转插件,提供类名、方法、变量、枚举、接口实现等跳转能力
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Android Code Navigation

面向 Android 项目的 VSCode 代码跳转插件,为 Java / Kotlin 源码提供类似 Android Studio 的跳转体验。适用于任意 Gradle / Android source set 布局的工程,不绑定特定仓库。

当前能力

  • 点击类名跳转到定义
  • 点击简单方法调用跳转到定义
  • 支持工作区级符号索引
  • 支持手动重建索引和清空索引
  • 支持查看当前光标下的候选符号
  • 支持接口类和接口方法上的实现跳转 CodeLens,点击后弹窗选择实现位置
  • 支持当前类内变量使用处跳定义、变量定义处查看引用
  • 支持方法和类声明处通过 N usages CodeLens 查看使用位置,也支持 Shift+F12 查找全工作区引用
  • 支持 Java enum 常量在 enum 类内跳定义和查看引用
  • 支持 this.xxx 和 enum 类名限定访问优先跳到类级字段/常量
  • 全限定类名(android.telephony.TelephonyManager)和显式 import 优先,避免跳到同名的其他类
  • 修正 return ENUM_CONSTANT; 被误判为局部变量声明导致 enum 常量无法跳转的问题

适配范围

  • 语言:Java、Kotlin
  • source set:识别路径中的 src 目录段(含 DREAMER-src 这类前缀变体)以及 java / kotlin 目录段,覆盖 main、debug、release、test、androidTest、各类差异化 flavor 目录,以及老仓 module/src/com/... 的扁平布局
  • 非标准源码路径可通过 dreamerNav.sourceRoots 配置补充;生成目录通过 dreamerNav.exclude 排除

工程结构

  • src/extension.ts:VSCode 入口,注册 provider 和命令
  • src/navigation.ts:索引、解析、候选排序和跳转逻辑
  • package.json:插件贡献点和配置
  • tsconfig.json:TypeScript 编译配置

开发

在工程根目录执行:

npm install
npm run compile

运行方式

  1. 在 VSCode 中打开这个工程
  2. 按 F5 启动 Extension Development Host
  3. 打开一个包含 Java / Kotlin 文件的 Android 工作区
  4. 点击类名或方法名验证跳转

配置

  • dreamerNav.sourceRoots
  • dreamerNav.exclude
  • dreamerNav.preferLanguageServer
  • dreamerNav.enableKotlinExtensionFunctions
  • dreamerNav.enableUsageCodeLens

安装后验证

安装新版 .vsix 后建议执行一次 Developer: Reload Window,然后运行:

  • Android Navigation: Show Index Status:确认已经索引到文件和符号
  • Android Navigation: Rebuild Index:手动重建索引
  • Android Navigation: Show Candidates:把光标放在类名或方法名上,查看当前 token 是否能解析到候选

说明

索引器使用轻量启发式解析,先覆盖最常见的类名和方法名跳转场景。后续可以继续增强 Kotlin 扩展函数、重载匹配和更完整的符号索引。

版本变更

0.1.23

  • 修复查引用/查使用者搜不到结果的问题:0.1.18 把索引改成直接读磁盘后,引用搜索仍然只认「已打开的编辑器」,导致 IBizUserService.batchQueryBasicUserInfo 这类符号查不到调用方。现在改用 VSCode 自带的 ripgrep 搜索整个工作区。
  • 方法和类声明上新增 N usages CodeLens,点击后弹窗选择使用位置,对齐 Android Studio 在声明处直接看使用者的习惯。数量只在 CodeLens 可见时才计算,结果缓存 30 秒。
  • 新增配置 dreamerNav.enableUsageCodeLens,可以关掉 usages CodeLens。
  • 引用结果沿用索引的过滤规则,kapt 等生成目录不会作为使用点出现。
  • 已知限制:引用搜索基于符号名文本匹配,同名方法(如各类的 onCreate)会被合并统计。

0.1.22

  • 修复无 receiver 的方法调用跳转出一长串候选的问题:applyUserInfo(it) 这类裸调用现在直接跳到当前文件里的同名方法,不再把全仓同名方法都列出来。
  • receiver 类型能推断出来时,只保留 owner 匹配的方法候选。
  • 明确是方法调用的位置不再混入同名类候选。
  • 同名类分散在多个 flavor source set(zm / zw / zy / support-*)时,仍会列出这批同 owner 候选让用户选择。

0.1.21

  • 修复老仓扁平源码布局不进索引的问题:ycloudarch-android/sdkwrapper/src/com/yy/... 这类没有 main/java 中间层的目录现在会被索引,com.yy.mobile.bizmodel.login.LoginUtil 等类可以正常跳转。
  • source set 识别放宽为「路径含 src 目录段(含 DREAMER-src 这类前缀变体)或 java / kotlin 目录段」,kapt* 等生成目录仍不索引。

0.1.20

  • 修复与系统类同名时跳错的问题:点击 android.telephony.TelephonyManager 不再跳到工程内的 com.yy.mobile.audit.TelephonyManager。
  • 包名限定写法(pkg.sub.ClassName)只匹配全限定名完全一致的类,索引里没有(如 Android SDK 类)时不返回候选,而不是退化到同名的其他类。
  • 当前文件显式 import 了某个同名类时,该简单名只解析到这个 import 对应的类,其他同名类不再作为候选。

0.1.19

  • 支持注解类跳转:类上、方法上的注解(如 @MyAnnotation)点击可跳到注解定义。
  • Java @interface 声明、Kotlin annotation class 声明现在会被索引为注解符号并纳入类候选。

0.1.18

  • 修复大仓索引时内存持续增长的问题:索引阶段和文件监听改为直接读磁盘内容解析(workspace.fs.readFile),不再对每个文件 openTextDocument,避免把整个工作区的 Java/Kotlin 文件都塞进 VSCode 文档缓存导致内存不释放。
  • 解析逻辑抽出 parseText,parseDocument 复用同一实现,行为保持不变。

0.1.17

  • 文案通用化:displayName 改为 Android Code Navigation,README 与命令、配置标题去除仓库专属字样,定位为通用 Android Java/Kotlin 跳转工具。
  • 命令 ID、配置键、插件 ID 保持不变,升级后已有配置无需调整。

0.1.16

  • publisher 改为 allen-code,对齐 VS Code Marketplace 已注册的发布者 ID。

0.1.15

  • 补齐发布到 VS Code Marketplace 所需元数据:repository、license 字段和 LICENSE 文件。
  • 消除打包时的 repository/LICENSE 警告。

0.1.14

  • 新增插件图标 src/img/navigator.png,在扩展列表中展示。

0.1.13

  • 索引改为严格 source set 模式:只索引落在 src/**/java 或 src/**/kotlin 结构内的源码。
  • src 之外的杂散 .java / .kt(如脚本、示例、临时文件)不再进入索引。
  • 差异化 flavor 目录(support-union、support-yy、support-zw、zm、zw、zy 等)仍通过通用 source root 正则被覆盖。

0.1.12

  • 索引扫描不再局限于固定的 main/debug/release/test source set。
  • src 下任意 flavor 目录(如 support-union、support-yy、support-zw、zm、zw、zy 等)里的 java / kotlin 目录都会被识别为源码根。
  • 修正排除规则按路径分段匹配,避免 out 误伤 layout、checkout 等合法源码目录。

0.1.11

  • Android Navigation: Show Candidates 支持接口类和接口方法的实现候选查看。
  • 光标位于接口或接口方法时,候选列表优先展示实现类或实现方法;无实现候选时回退普通定义候选。

0.1.10

  • 初始索引和手动重建索引时,在 VSCode 窗口底部显示索引进度。
  • 进度信息包含文件查找、当前扫描文件和完成后的索引文件数。

0.1.9

  • 接口类和接口方法的实现跳转 CodeLens 点击后始终弹窗选择实现位置。
  • CodeLens 文案调整为 Show implementations (N implementations)。

0.1.8

  • 修复 return ENUM_CONSTANT; 被误判为局部变量声明,导致 Java enum 常量无法跳转到定义的问题。

0.1.7

  • 支持一行多个 Java enum 常量解析。
  • 放宽 enum 常量命名限制,不再只支持全大写常量。
  • this.xxx 和 EnumName.xxx 优先跳到类级字段或 enum 常量。

0.1.6

  • 支持 Java enum 常量在 enum 类内跳定义和查看引用。

0.1.5

  • 修复类字段在方法内被引用时无法跳到字段定义的问题。
  • Java 字段声明解析支持常见修饰符和注解。

0.1.4

  • 支持当前类内字段、方法参数、局部变量使用处跳定义。
  • 变量定义处通过 CodeLens 查看当前类内引用。

0.1.3

  • 支持接口类和接口方法上的实现跳转 CodeLens。
  • 点击实现入口后可选择实现类或实现方法。

0.1.2

  • 修正打包版本递增规则。
  • 打包时忽略历史 .vsix 文件,避免安装包递归变大。

0.1.1

  • 修复安装后无法触发跳转的问题。
  • 增加 Kotlin 语言贡献、索引状态命令、引用和实现跳转能力。
  • 增强 Kotlin extension function 解析和 receiver 类型匹配。

0.1.0

  • 初始版本。
  • 支持 Java/Kotlin 类名、简单方法调用跳转、工作区符号索引和候选查看。
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft