Android随笔-要怎样与AI相处
程序员如何面对 AI:态度与策略
一、核心认知:AI 不是替代你,是替代"重复劳动"
AI 能帮你:
- 写样板代码(View、Adapter、接口)
- 生成单元测试
- 解释文档、快速查 API
- 画流程图、写技术博客
AI 目前做不到:
- 在 8 个线程竞争条件下定位死锁根因
- 根据线上 OOM 崩溃堆栈反推内存泄漏链路
- 设计一个兼顾低版本兼容和新特性体验的架构方案
- 判断"这个技术债现在该还还是该欠"
核心差距:AI 是"模式匹配",程序员是"因果推理"。
二、对 AI 的态度:“用而不迷,学而不惧,守正出奇”
1. 工具层面:像对待"高级搜索引擎 + 初级实习生"
不卑不亢
- 不卑:AI 不是老师,是助手。你有能力判断对错。
- 不亢:也别觉得"AI 都是胡扯"。它写样板代码、生成单元测试,确实比你手敲快。
验证优先
AI 给的答案,默认打问号。特别是:
- 涉及具体 API 版本兼容性(Android 各版本行为差异)
- 涉及性能优化(它可能给出一个"能跑但卡"的方案)
- 涉及安全(它可能生成有注入风险的 SQL)
态度:先质疑,再验证,最后采纳。
明确边界
| 适合交给 AI | 不适合交给 AI |
|---|---|
| 写样板代码、生成测试数据 | 核心架构设计、技术选型决策 |
| 解释概念、快速入门新技术 | 线上问题根因排查(需要上下文) |
| 文档润色、代码注释 | 涉及业务逻辑的关键路径 |
| 头脑风暴、提供思路 | 最终代码审查和质量把关 |
2. 现象层面:保持"参与但不盲从"
承认它的局限性
AI 本质是概率模型,不是"理解"。
- 它能生成"看起来像代码"的东西,但不懂"为什么这样写"
- 它能回答技术问题,但无法替代你在真机上调试、在 Profiler 里抓 trace 的经验
态度:把它当"加速器",不是"替代器"。
关注不可替代的能力
| 能力 | 为什么 AI 难以替代 |
|---|---|
| 系统级调试 | 需要真机环境、实时数据、业务上下文 |
| 架构权衡 | 涉及团队习惯、技术债、迭代节奏、人效 |
| 价值判断 | "这个功能现在做不做"是商业决策,不是技术问题 |
保持学习,但不被焦虑裹挟
- 看到"AI 取代程序员"的新闻,淡定。媒体需要流量,夸张是常态。
- 看到"不会用 AI 的程序员将被淘汰",也淡定。这是工具进化,不是物种灭绝。
- 真正该焦虑的是:停止学习、停止思考、停止动手实践。
三、具体策略:从"写代码"转向"定义问题"
1. 深耕不可替代的底层能力
- Android 系统源码(AMS、WMS、Binder、Zygote)——AI 读不懂源码的上下文语义
- 性能调优(内存、卡顿、电量)——需要真机环境、Profiler 数据、业务场景综合判断
- 架构设计(MVVM/MVI/模块化)——涉及团队规模、迭代节奏、技术债权衡
这些能力的特点是:经验密度高、上下文依赖强、结果不可预测。
2. 把 AI 当"高级实习生"用
| 场景 | 你的角色 | AI 的角色 |
|---|---|---|
| 写 CRUD 接口 | 审阅者 | 生成者 |
| 排查崩溃 | 主导者 | 辅助分析堆栈 |
| 技术选型 | 决策者 | 提供选项对比 |
| 写文档 | 把关者 | 初稿生成 |
| 学习新技术 | 提问者 | 结构化讲解 |
关键转变:从"亲自写每一行"变成"定义问题边界、验证方案可行性、把控最终质量"。
3. 建立"AI 增强工作流"
1. 需求理解(人)→ 2. 方案设计(人 + AI 辅助)→ 3. 核心逻辑实现(人)→ 4. 样板代码填充(AI)→ 5. 自测/Review(人 + AI 辅助)→ 6. 上线/维护(人)具体到 Android 开发:
| 环节 | 你的动作 | AI 辅助 |
|---|---|---|
| 设计 MVVM 架构 | 画 UML、定义接口 | 生成 BaseViewModel 模板 |
| 写网络层 | 定义 Repository 契约 | 生成 Retrofit 接口 + 数据类 |
| 写 UI | 手写 Compose 复杂交互 | 生成简单布局、图标资源 |
| 性能优化 | 用 Profiler 分析、定位问题 | 解释 Systrace 报告 |
四、警惕三个陷阱
陷阱 1:过度依赖 AI,丧失"手写能力"
如果你连一个 Handler/Looper 机制都讲不清楚,全靠 AI 生成,线上问题排查时肯定会很难。
陷阱 2:把"能用"当成"对"
AI 生成的代码往往"能跑",但不一定:
- 符合团队编码规范
- 处理了边界情况(空指针、并发、生命周期)
- 考虑了性能(内存泄漏、过度绘制)
陷阱 3:忽视"可解释性"
AI 给出一个方案,你要能追问"为什么":
- 为什么用协程而不是 RxJava?
- 为什么这里要加锁?
- 这个算法的时间复杂度是多少?
如果你解释不了,就不是你的能力。
五、长远来看:程序员的价值在"上移"
过去:需求 → 写代码 → 测试 → 上线 现在:需求 → 拆解 → 设计 → AI生成 → 审查 → 集成 → 验证 → 上线 将来:需求 → 定义 → 编排 → 多Agent协作 → 验收 → 持续优化你的价值会越来越集中在:
- 问题定义:用户到底要解决什么?
- 系统设计:模块怎么拆分、数据怎么流转?
- 质量把控:AI 产出是否可靠?
- 持续交付:怎么让系统越跑越稳?
六、总结
AI 不会淘汰程序员,但会用 AI 的程序员会淘汰不会用的。
把 AI 当杠杆,而不是拐杖。用它放大你已有的能力,而不是替代你思考的过程。
“用而不迷,学而不惧,守正出奇。”
- 用而不迷:用 AI 提效,但不迷信它的输出。
- 学而不惧:持续学习 AI 能做什么、不能做什么,但不恐惧被替代。
- 守正出奇:守住你的核心能力(底层原理、系统思维、创作表达),用 AI 作为出奇制胜的杠杆。
