第2篇:核心工具实战 — Glob / Grep / Read / Edit / Bash
前置知识:阅读第1篇后食用效果更佳
学习时长:约 20 分钟
你将学到什么
- Glob:快速定位 Android 项目中的任何文件
- Grep:在海量代码中精准搜索关键词、类名、方法名
- Read:高效阅读大文件,理解代码结构
- Edit:精确修改文件内容,不误伤周边代码
- Bash:在 Claude Code 中执行终端命令,运行 Gradle、adb 等
1. Glob — 文件定位器
基本用法
Glob 是 Claude Code 最常用的搜索工具,特别适合 Android 项目这种多模块、大目录的场景:
请帮我找一下项目中所有以 Activity 结尾的 Kotlin 文件
Claude Code 会执行 Glob 工具:
Glob { pattern: "**/*Activity*.kt" }

Android 场景实战
场景:修改某个页面的 ViewModel
请帮我找项目中所有 ViewModel 相关的文件
Claude Code 会匹配 **/*ViewModel*.kt,快速列出所有 ViewModel 文件及其路径。
场景:找到布局文件
查找所有 activity_*.xml 布局文件
Glob { pattern: "**/res/layout/activity_*.xml" }
常用 Pattern 速查
| 场景 | Pattern 示例 |
|---|---|
| 某类文件(递归) | **/*.kt、**/*.xml |
| 指定目录 | app/src/main/java/**/*.kt |
| 带前缀/后缀 | **/Main*.kt、**/*ViewModel.kt |
| 排除某目录 | **/*.kt(自动排除 .gradle、build) |
| 多条件 | Glob 两次:**/res/layout/*.xml + **/res/layout-v28/*.xml |
2. Grep — 代码搜索器
基本用法
Grep 在文件内容中搜索匹配的行,返回文件路径和行号:
Grep { pattern: "onCreate", glob: "*.kt", path: "app/src/main/java" }

Android 场景实战
场景:搜索某个方法的调用位置
帮我搜索项目中所有调用 findViewById 的地方
场景:追踪一个 ButterKnife 或 ViewBinding 的绑定
搜索 @BindView 注解的使用
场景:找某个字符串资源引用
搜索 "cancel" 或 "confirm" 相关的代码
高级用法
限制搜索范围到某个目录:
只在 app/src/main/java/com/example 目录下搜索 "suspend fun"
排除测试文件:
搜索时排除 test 和 androidTest 目录,只看业务代码
3. Read — 文件阅读器
读取大文件
对于大型 Android 项目,直接读整个文件可能太长。Claude Code 支持按行号范围读取:
读取 MainActivity.kt 的第 50-80 行
Read { file_path: "app/src/main/java/com/example/MainActivity.kt", offset: 50, limit: 30 }
理解代码结构
让 Claude Code 帮你分析文件结构:
读取 MainActivity.kt,帮我分析它的整体结构
Claude 会读取后给你一个结构化的分析:
MainActivity.kt 结构:
├── 类声明 + onCreate
├── initToolbar() — 配置 Toolbar
├── setupRecyclerView() — 设置列表
├── setupClickListeners() — 绑定点击事件
└── lifecycle methods (onDestroy)

跨文件依赖分析
读取 @MainActivity.kt 和 @MainViewModel.kt,分析它们之间的数据流
4. Edit — 精准编辑器
替换模式(最常用)
Edit 工具有两种模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
replace |
全文替换 old_string → new_string | 精确到行的修改 |
insert |
在指定位置插入内容 | 新增功能 |
replace 示例:
// 修改前
val title = "Hello"
// 修改后
val title = "Hello, Claude!"
insert 示例:
// 在 // END OF CLASS 注释后插入新方法
Android 实战:新增一个方法
请在 MainActivity.kt 的 setupListeners() 方法末尾,
新增一个 onDoubleTap() 方法,用于处理双击事件
Claude 会:
- 读取文件,定位到
setupListeners()方法 - 在方法末尾插入新方法
- 显示修改前后的 diff

批量修改
请帮我把所有 Activity 中的:
setTitle("xxx") 改为 toolbar.title = "xxx"
Claude 会用 Grep 先找到所有匹配的行,然后逐一 Edit 修改。
5. Bash — 终端命令执行
基本用法
Bash 工具让你在 Claude Code 中直接执行终端命令:
执行 ./gradlew assembleDebug 构建项目
Bash { command: "./gradlew assembleDebug", timeout: 300000 }
Android 常用命令
构建项目:
./gradlew clean assembleDebug
安装并启动应用:
adb install app/build/outputs/apk/debug/app-debug.apk
adb shell am start -n com.example/.MainActivity
查看设备日志:
adb logcat | grep -i "MainActivity"
清理并重新构建:
./gradlew clean && ./gradlew assembleDebug --info

组合工具:先搜索后执行
1. 先用 Glob 找到 debug apk 路径
2. 然后用 adb install 安装
请帮我找到最新构建的 debug apk,然后安装到当前连接的设备上
Claude Code 会自动组合 Glob + Bash,先找文件路径,再执行安装命令。

6. 工具组合实战
场景:重构一个方法名
目标:将所有 getUserInfo() 方法重命名为 fetchUserProfile()
步骤 1:先搜索确认范围
Grep { pattern: "getUserInfo", glob: "*.kt" }
确认有多少处调用,分布在哪些文件中。
步骤 2:逐文件修改
Claude Code 会:
- 对每个文件执行 Edit
- 同时修改方法定义和所有调用处
- 显示完整的 diff
步骤 3:验证构建
./gradlew assembleDebug
确认重构没有破坏编译。
场景:批量替换字符串资源引用
目标:将所有 R.string.app_name 改为 R.string.app_display_name
请帮我搜索所有引用 R.string.app_name 的地方,
然后替换为 R.string.app_display_name
Claude 会先用 Grep 确认范围,然后 Edit 批量替换。
快速回顾
| 工具 | 核心功能 | Android 典型用法 |
|---|---|---|
| Glob | 按文件名模式搜索 | 找 Activity/ViewModel/布局文件 |
| Grep | 按内容关键词搜索 | 找方法调用/注解/字符串引用 |
| Read | 读取文件内容 | 分析代码结构/理解依赖 |
| Edit | 修改文件内容 | 增删改方法/替换字符串 |
| Bash | 执行终端命令 | 构建/安装/查看日志 |
黄金组合:
- Glob + Read:先定位再阅读
- Grep + Edit:先搜索再修改
- Bash + Grep:构建后验证变更
延伸阅读
- 上一篇:第1篇-日常开发流
- 下一篇:第3篇-Skill技能实战
下篇预告:编写你自己的第一个 Skill 技能,结合 Android 工程师角色的实际配置,实现工作日志自动化、知识库快速保存等实用功能。
当前文章价值1.49元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

评论已关闭!