最佳实践

Android Studio 中的 Gemini 可充当您的编码协作伙伴,通过生成代码、总结复杂主题、查找特定资源等方式来加快您的开发工作流程。有效的沟通是充分发挥 Gemini 潜力的关键。

本指南概述了用于设置开发环境和撰写提示的策略,这些提示可生成实用且可靠的回答。对于多种策略,我们提供了不同应用场景的提示示例。如需查看更多提示示例,请参阅提示库

使用智能体模式

Android Studio 中 Gemini 的智能体模式可提供比单纯与 Gemini 聊天更出色的体验。您可以为代理设定一个高级目标,然后代理会分解问题并制定解决方案。代理会调用工具、编辑多个文件,并在处理过程中修复错误。智能体模式可帮助您更高效地处理复杂任务,从而加快整个开发流程。

内容要具体

Gemini in Android Studio 在收到清晰明确的指令时效果最佳。如果您想使用某些特定的库、API 或方法,请在问题中提及它们,或者将它们包含在项目的根 AGENTS.md 文件中,以便在互动过程中保留它们。您可以将其视为提交 bug 报告:您提供的信息越多,问题就能越快、越有效地得到解决。

实现新功能

如何使用 CameraX 为我的应用添加相机支持?确保包含使用该库所需的任何依赖项和权限。
如何向我的应用添加相机支持?

生成代码

编写一个 Kotlin suspend 函数,该函数使用 Coil 库从给定的网址字符串下载图片。

该函数应命名为 fetchImageAsBitmap。它应接受 ContextString 网址作为实参,并返回可为 null 的 Bitmap。如果出现任何网络或解码错误,它应捕获异常、记录异常,并返回 null

编写一个用于下载图片的函数。

解释概念

我正在构建一个音乐播放器应用,需要在应用处于后台时继续播放。

在用户在设备上执行其他操作时,我有哪些选项可用于保持应用运行? 每种方法的 API 级别要求和电池续航时间影响是什么?

说明 Android 服务。

描述答案的结构

默认情况下,Gemini 会以对话式段落格式提供回答。虽然这对于解释来说通常很有用,但如果您告诉模型如何构建回答,就可以获得更有效且可立即使用的结果。 指定输出格式可指示模型以清晰、可预测的方式整理信息,从而节省您自行重新设置格式的时间。

如果您想将 Gemini 生成的代码插入到应用中,并且需要代码采用特定格式以便立即使用,请向 Gemini 明确说明代码的生成和格式设置方式。

构建回答

为用户个人资料创建 Room 实体。它应包含 iduserNameemailmemberSince 字段。id 字段应自动生成。memberSince 字段应表示时间戳。

为用户个人资料创建 Room 实体。

如果您要提出更开放式的问题,请提出 x 个选项。

限制回答

有哪些工具可用于优化应用性能? 请列出前三名。
有哪些工具可用于优化应用性能?

将复杂的请求分解为较小的任务

对于复杂的多步请求,请务必尝试使用代理模式。不过,如果代理的回答不符合您的预期,您可以尝试通过一系列较小的顺序提示来引导 Gemini,而不是一次性提出所有问题。这种方法可让您更好地控制流程,并可在继续执行下一步之前验证每个步骤。

应用连续提示

提示 1:数据模型
首先,创建一个名为 User 的 Kotlin 数据类。它应具有三个属性:id(整数)、name(字符串)和 email(字符串)。

提示 2:网络层
现在,创建一个名为 ApiService 的 Retrofit API 接口。它需要一个名为 getUsers()suspend fun,该 suspend fun 会返回一个 List<User>

提示 3:状态管理
接下来,编写一个以 ApiService 为依赖项的 UsersViewModelUsersViewModel 应公开一个密封 UiState 类的 StateFlow,该类可以表示 Loading, Success(users: List)Error(message: String) 状态。在 ViewModel 中创建一个函数,用于提取用户并更新状态。为新功能编写单元测试

提示 4:界面层
最后,编写一个名为 UserListScreen 的 Jetpack Compose 函数,该函数接受 UiState 作为参数。使用 when 语句显示加载状态的 CircularProgressIndicator、成功状态的用户名 LazyColumn 以及包含错误消息的错误状态的 Text 元素。添加用于验证新功能的测试。

创建一个 Jetpack Compose 界面,该界面从 JSON API 中提取用户列表,并以列表形式显示这些用户。它应具有使用 Retrofit 和协程的 ViewModel、用于处理数据逻辑的代码库、User 数据类,并且需要显示加载和错误状态。

管理上下文

在 Android Studio 中使用 Gemini 的一个重要方面是提供正确的上下文。提供相关的代码段、文件内容和项目结构信息,以便获得最实用的回答。您可能需要反复尝试,才能找到合适的平衡点:信息过多可能会误导 Gemini,而信息过少则无法为 Gemini 提供足够的背景信息,使其无法提供帮助。使用可用功能向 Gemini 提供必要的背景信息:

  • 附上图片,直观展示您设想的界面或您尝试了解的应用架构。
  • 附加文件以突出显示代码库的相关部分。
  • 使用 .aiexclude 文件可让 Gemini 忽略代码库的某些部分。
  • 使用 AGENTS.md 文件提供项目专用说明,并与团队共享。使用 AGENTS.md 文件时,请使用 Markdown 标题和格式设置来清晰地表达说明。
  • 在智能体模式下,配置 MCP 服务器,以利用外部环境扩展 Gemini 的知识和能力。

请求说明

如果您不理解 Android Studio 中 Gemini 的回答,可以要求其进行解释。这是学习的好方法,有助于验证所提出的解决方案是否适合您的使用情形。如果回答不符合您的预期,可能是 Gemini 回答有误,要求其提供说明有助于 Gemini 自行更正。

迭代指令

与同事协作时,有时需要来回沟通才能明确任务和预期结果;在 Android Studio 中与 Gemini 协作时也是如此。如果 Gemini 的初始回答不够充分,请回复并提供有关如何改进的反馈和建议。如果其回答根据您的建议有所改进,请通过更新提示库中的条目或更新 AGENTS.md 文件,将该建议纳入原始提示中。