AI 在 Android 路线图中处于什么位置?
AI 并不是第 10 个阶段。它与每个阶段并行存在,以两种不同的方式:使用 AI 来完成你的工作,以及将 AI 构建到你发布的应用中。
路径 A:作为 Android 工程师使用 AI
谷歌现在已经为此提供了工具。Android CLI 1.0 允许代理(如 Android Studio 中的 Gemini、Claude Code 或 Codex)创建、构建和部署 Android 应用。Android Skills 为代理提供了谷歌在自适应 UI 或测试设置等任务上的最佳实践。
必须掌握
- 为工具提供正确的上下文和明确的限制
- 以小步骤工作:计划、小改动、审查、测试
- 审查 AI 代码中的生命周期、线程、状态和安全问题
- 检查 AI 编写的测试是否能够失败,而不仅仅是通过
- 了解哪些代码和数据可以与哪个工具共享
- 知道何时停止提示,转而阅读文档或源代码
- 代理和 MCP 服务器如何将工具连接到模型的基础知识
以下是 AI 工具经常编写的代码类型。它能编译通过,快乐路径能工作,审查看起来也很干净:
// 几乎正确
fun loadProfile() = viewModelScope.launch {
runCatching { repository.fetchProfile() }
.onSuccess { _uiState.value = UiState.Data(it) }
.onFailure {
crashReporter.log(it) // 也会记录正常的取消
_uiState.value = UiState.Error
}
}
// 正确
fun loadProfile() = viewModelScope.launch {
try {
_uiState.value = UiState.Data(repository.fetchProfile())
} catch (e: CancellationException) {
throw e // 让取消完成
} catch (e: IOException) {
crashReporter.log(e)
_uiState.value = UiState.Error
}
}runCatching 会捕获所有 Throwable,包括 CancellationException。当用户离开屏幕且协程被取消时,第一个版本会将其视为失败。它记录了一个从未发生过的错误,并在协程本应停止后继续执行代码。Kotlin 文档直接指出:如果你捕获了 CancellationException,请重新抛出它。
只有当你学习了第三阶段时,你才能发现这个问题。这就是为什么 AI 让基础知识变得更加重要,而不是更不重要。
路径 B:将 AI 功能构建到应用中
谷歌的选择 AI 解决方案指南从一个规则开始:使用最简单的模型和工具来完成工作。
设备端(Gemini Nano、ML Kit GenAI API、Prompt API)。优点:隐私、离线使用、无每次请求成本。注意事项:只有部分设备支持;最适合短文本任务。
云端(Firebase AI Logic、你自己的后端)。优点:更大的模型、图像和视频输入、复杂任务。注意事项:网络、延迟、成本、用户数据离开设备。
混合方案。优点:设备支持时使用设备端,云端作为后备。注意事项:需要构建和测试两条代码路径。
必须掌握
为某个功能选择设备端、云端或混合方案
调用模型并将答案流式传输到 Compose 状态
结构化输出并安全地解析它
超时、重试、速率限制和错误
成本和延迟预算
将 API 密钥保留在设备之外,确保用户数据安全
检查模型输出并在 UI 中处理错误答案
AI 友好的用户体验:显示进度,让用户纠正结果
AppFunctions,以便设备端代理可以使用你的应用功能
经典 ML Kit 用于不需要大模型的视觉和文本任务
深入学习:嵌入和检索、使用测试集评估模型输出、构建代理。
该列表中的每一项都是第三、六、七或八阶段的技能,只是中间加了一个模型。AI 功能不会取代路线图,而是考验它。
AI 面试问题
审查这个 AI 编写的 ViewModel 并找出 Bug。
在合并 AI 生成的代码之前,你如何检查它?
对于这个功能,使用设备端还是云端?为什么?
如何防止模型调用泄露用户数据或你的 API 密钥?
什么是 MCP 服务器?它如何将工具连接到模型?
现在的 Android 面试是什么样子的?
根据开发者们在 2026 年公开分享的最新 Android 面试经历(从 SDE-1 到 SDE-2),一些模式浮出水面。这些都是个人故事,不是调查,但它们指向同一个方向:
编码题仍然会出现。 大多数面试轮次都有数据结构与算法环节(滑动窗口、双指针、哈希映射)。有些则用一个小的协程任务来代替。Android 经验并不能让你跳过它们。
Android 轮次深入而非宽泛。 ViewModel 内部原理和在配置变更中保持状态反复出现。协程也是如此。面试官问的是“它是如何工作的”和“如果……会发生什么”,而不是“什么是”。
设计题很早就开始出现。 即使是 SDE-1 的面试轮次也可能有一个设计环节。主题包括图片加载库、分析 SDK、无限图片网格和购物应用。
一些公司增加了机器编码环节。 你在 45 到 60 分钟内现场构建一个可运行的小型应用,或者作为家庭作业。
AI 已经进入了面试。 它会作为一个话题出现(你使用哪些工具、什么是 MCP、你在工作中如何使用 AI)。据报道,2026 年 5 月,谷歌还在试点一个环节,让初级和中级候选人使用 Gemini 阅读、调试和改进现有代码。
如何为每一轮做准备
编码(数据结构与算法)。考察:在时间压力下解决问题的能力。准备:从第一个月开始每周做几道中等难度的题目。在编码之前大声解释你的思路。
Android 和 Kotlin 深入探究。考察:第一至五阶段。准备:使用每个阶段的面试问题。大声回答,然后对照文档检查自己。
机器编码。考察:快速编写整洁、可工作的代码。准备:练习在 60 分钟内构建一个列表、详情和搜索应用。拥有一个你熟悉的项目模板。
移动端系统设计。考察:第六至九阶段。准备:练习常见的设计问题:先确定需求,然后是数据、API、缓存、离线、故障情况。
AI 辅助编码(如果有)。考察:阅读代码,检查 AI 输出。准备:练习使用 AI 修复不是你写的代码中的 Bug,同时解释你接受的每一个更改。
招聘经理和行为面试。考察:责任心和判断力。准备:准备四个真实的故事:一个棘手的 Bug、一次分歧、一个错误、一件你主导的事情。
问什么取决于公司和级别。不要计算你记住了多少个问题。要计算你能解释、构建并针对“如果……”进行辩护的答案有多少个。