Google Gemini 如何加速 Android 开发?

往期文章:

《00. 文章合集目录》

《10. 揭秘 Compose 原理》

《2 小时入门 Jetpack Compose》

《深入理解 Jetpack Lifecycle(原理篇)》

你好,我是朱涛。今天我们来聊聊 AI 和 Android 开发。近些年,基于大模型的人工智能发展迅猛,OpenAI 有 ChatGPT,国内有 Deepseek。然后,我因为和 Google 接触比较多,有幸成为了 Gemini 的第一批使用者,这些年一直用下来,感觉也非常不错。

Android Studio 在最新的版本迭代中,也在积极引入 Gemini 来强化它的 AI 辅助功能。我收到 Android 团队的推广邮件后,第一时间就下载体验了起来。

现在我来跟大家简单介绍下 Android Studio 的 AI 辅助功能,以及我的使用体验。

第一步:下载 Android Studio 预览版 & 配置

最新的 Android Studio 版本是 Meerkat,也就是我们熟悉的"蒙哥"。

接着,打开 Android Studio,我们就可以开始配置 Gemini 了。具体路径是:View > Tool Windows > Gemini

这时候,会要求你登录自己的 Google 账户。

当前 Gemini AI 辅助功能还处于 preview 阶段,我们是可以免费试用的。需要注意的是,由于 Gemini 服务是由 Google 提供的,我们在国内使用需要通过科学上网的途径。

Google 还是非常注重隐私的,在你完成账号登录后,会让你选择:隐私模式;

如果你对 AI 编程工具不熟悉,上面的几个选项可能会让你懵掉,我来简单解释下:

  • 第一个选项:Gemini 默认会访问你所有工程里的代码文件,通过理解你的工程,可以让 Gemini 的回答更加精确;我个人是不推荐选第一个的;
  • 第二个选项:每次打开新的工程,都会询问。
  • 第三个选项:不访问工程任何代码文件。

我个人是使用的第二个选项:每个工程都询问我。

那么,什么样的工程可以让 Gemini 访问所有的代码文件呢?我的理解是:

  • 如果整个代码工程都属于你,并且你说了算,并且你愿意让 Gemini 访问你的代码,那就可以开启;
  • 如果代码工程不属于你,比如是公司的项目,那么千万不要开启这个功能;

配置完这个选项后,我们就可以开始体验 AI 辅助编程了。

上手体验

Gemini 集成到 Android Studio 后,可以为我们做什么呢?

简单问答:

首先,从 Gemini 默认界面可以看到。它是一个对话模式的 UI,如果你用过 ChatGPT 对这个应该就不会感到陌生。在大模型领域,我们向 AI 提问,被称作:"Prompt",中文一般叫做"提示词"。

可以看到,默认情况下,官方给我们提供了一些示例"提示词"。

这属于最基础的功能,如果要以问答的方式来跟 Gemini 交流,并不一定非要在 Android Studio 里面,我们在网页里一样可以。

我们来看一下 Gemini 在 Android Studio 当中独家的功能吧。

AI 智能诊断

当我们的 Android 工程在 sync 或者编译过程中遇到报错,我们最常的做法就是拷贝报错日志,然后去网页里找答案。

有了 Gemini 后,我们可以直接点击:"Ask Gemini"。

举个例子,我在写教程的过程中,用的 HelloWorld 工程在 Sync 的时候遇到了问题。

我点击"Ask Gemini"以后,它立马就诊断出了原因,并且给出了详细的解决方法:清空缓存+重启。

我清空缓存后,问题也顺利得到了解决,点赞!

快捷入口

Gemini 集成到 Android Studio 后最大的优势,就是可以灵活的在右键菜单里访问。

针对一段代码,我们可以选中,然后让 AI 为我们解释,也可以让 AI 帮我们改进。

在我们写代码的时候,给变量起名字有时候也很头疼,这件事就交给 AI 吧。

Google 把 Gemini 深度集成到 AS 当中后,这些功能都可以非常方便的访问了。这里我就不对这些小功能一一演示了。

这里我拿一个问题来考考 Gemini 吧,问题不算难,但对 AI 还是挑战性的,我们来看看 Gemini 能做到什么程度。

考考 Gemini:代码改进

kotlin 复制代码
// Can you identify the problem with this code and suggest improvements?

class User {
    var name: String?
    var age: Int?
    var address: String?
}

Gemini 返回结果非常快,立马分析出了这段代码中的问题:

vbnet 复制代码
Problems with the Current Code
Nullability: The use of nullable types (String?, Int?) implies that a User object might not have a name, age, or address. While this might be valid in some scenarios, it often leads to the following problems:
Lack of Initialization: The properties are declared but not initialized. This means they will have a null value by default, making the nullability issue even more prominent.
Mutability: While the need for var (mutable) is not inherently a problem, it's worth considering whether these properties need to be mutable. If a user's name, age, or address rarely or never changes after creation, using val (immutable) might be a better choice. Immutability can simplify reasoning about your code and avoid unexpected side effects.

针对上面的问题,Gemini 也立马给出了两个可选的改进方向:

第一个是:确保空安全 + 默认值;

第二个是:确保空安全 + 限制不变性;

熟悉 Kotlin 的同学肯定知道这不是完美答案,但总体也能打个 70 分了。

然后,我又尝试给了下提示,让 Gemini 往 Data Class 的方向思考。

这时候 Gemini 卡壳了......只是扔给我了一堆的参考链接。这不太应该,我猜测 Android Studio 接入的 Gemini 还不是 Google 家的最强版本,于是尝试套取它的信息。

可以看到,目前 Android Studio 里用的还是 Gemini 1.5 Pro,希望能让我早日用上 Gemini 2.0~

总结 & 警告

现阶段,我们人类距离 AGI 的终极目标还有一段距离,但 AI 已经可以帮我们完成一些简单的任务了。如果将一些初级的编程任务交给 AI,AI 也可以帮我们完成的很好。

但从我目前观察到的情况来说,不管是 Android Studio 的 Gemini,还是业界最强的 Cursor,这些 AI 工具都无法胜任中高级编程任务。但也许,在不远的未来,就会有足够牛逼的 AI 编程机器人出现了。

不管怎么样,我们作为 Android 程序员,现阶段去积极了解和使用 Gemini,也是个非常不错的事情。毕竟我们没有额外的使用成本(不花钱,用起来也不费劲)。虽然 Gemini 现阶段还比不上经验丰富的程序员,但有的时候它确实可以给我一些惊喜,让人眼前一亮。

最后,如果你打算在 Android 项目中尝试 AI 辅助功能,除了我在前面提到的问题外,你还需要提防 AI 有时候会:一本正经的胡说八道

所以,对于 AI 生成的代码,你一定要小心 review 再合并到工程里

好啦,今天的内容就到这了,后续我应该还会出一期专门的 AI 编程工具评测文章,到时候我们来看看 Gemini 的上限到底在哪里。

我们下一篇文章再见啦~

相关推荐
带娃的IT创业者23 分钟前
机器学习实战(8):降维技术——主成分分析(PCA)
人工智能·机器学习·分类·聚类
调皮的芋头1 小时前
iOS各个证书生成细节
人工智能·ios·app·aigc
太空漫步112 小时前
android社畜模拟器
android
flying robot3 小时前
人工智能基础之数学基础:01高等数学基础
人工智能·机器学习
Moutai码农3 小时前
机器学习-生命周期
人工智能·python·机器学习·数据挖掘
188_djh3 小时前
# 10分钟了解DeepSeek,保姆级部署DeepSeek到WPS,实现AI赋能
人工智能·大语言模型·wps·ai技术·ai应用·deepseek·ai知识
Jackilina_Stone3 小时前
【DL】浅谈深度学习中的知识蒸馏 | 输出层知识蒸馏
人工智能·深度学习·机器学习·蒸馏
bug404_4 小时前
分布式大语言模型服务引擎vLLM论文解读
人工智能·分布式·语言模型
Logout:4 小时前
[AI]docker封装包含cuda cudnn的paddlepaddle PaddleOCR
人工智能·docker·paddlepaddle
海绵宝宝_5 小时前
【HarmonyOS NEXT】获取正式应用签名证书的签名信息
android·前端·华为·harmonyos·鸿蒙·鸿蒙应用开发