第2篇-核心工具实战

2026-05-01 18:02 第2篇-核心工具实战已关闭评论

第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(自动排除 .gradlebuild
多条件 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 会:

  1. 读取文件,定位到 setupListeners() 方法
  2. 在方法末尾插入新方法
  3. 显示修改前后的 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:构建后验证变更


延伸阅读


下篇预告:编写你自己的第一个 Skill 技能,结合 Android 工程师角色的实际配置,实现工作日志自动化、知识库快速保存等实用功能。

当前文章价值1.49元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/3999.html ,谢谢支持!

资源分享

Claude Code 完全使用指南 Claude Code 完全使用指南
浅谈Collection接口和Collections封装类的区别 浅谈Collection接口和Collecti
007-wordpress防止文章被爬取,编码实现 007-wordpress防止文章被爬取,编
Open Claw Anthropic 模型配置指南 Open Claw Anthropic 模型配置

评论已关闭!