探索 Android 开发的未来发展方向,了解 Android Studio 和 Android CLI 终端工具。在本讲座中,我们将揭晓 Android Studio Canary 和稳定版的最新功能,包括 AI 辅助代码迁移、Compose 和智能体客户端协议 (ACP) 支持,以及 Lightbuild 的声明式架构。我们还将深入探讨 Android CLI 工具链的最新更新。了解如何使用它来自动执行内循环工作流,从而更好地访问设备、使用诊断工具解决本地和生产问题、分析工作流以让智能体测试和验证优化,以及执行更多操作。
转写文稿
我们先从这些工具中最基础的 Android CLI 开始。
随着编程智能体在日常工作流程中扮演越来越重要的角色,您需要针对智能体的运作方式进行优化的工具。
现在,传统的命令行工具通常需要人工解读、手动输入,或者功能有限,无法真正发挥智能体的能力。
Android CLI 是专为现代智能体打造的现代化解决方案,具有可预测的命令、结构化输出、零交互式提示,以及不断扩展的功能,可借助 Agent Assist 推动更深入的开发者工作流。
它是 Android 开发者在各种智能体环境中(从终端中的 Claude Code 到 Google Antigravity,再到 Android Studio)获得一致体验的基础。
为了了解实际运作方式,我们将使用 Pocket Casts。
这是一款开源播客应用,拥有数百万用户,我也是其中之一。
我用它来播放音频、播放视频、进行后台同步,它有一个包含 40 个模块的活跃代码库。
接下来,我将把时间交给 Esteban,让他带大家了解 Android CLI 的功能。
谢谢 Adarsh。
好的,接下来我们将切换到 AI 现场演示。
可能会出现什么问题?
今天,我们将从头开始演示,从 CLI 一直演示到 Android Studio。
不过,我将以真正的 CLI 方式在终端中向您展示我的议程。
首先,我想向大家展示我们在 Android CLI 中所做的新改进。
我当然安装了 Android CLI。
这些是命令的文本墙。
但我今天为我们添加了一个 ADS 标志。
因此,我想向大家展示一下,自我们在 Google I/O 大会上发布这款工具以来,我们都做了哪些工作。
我们新增了许多命令。
在所有演示中,您都会看到这些命令的实际应用。
但现在,我们可以分析 APK,检查 R8 的配置情况,因此您的智能体可以检查 APK 或 AAB 是否处于正确状态。
我们添加了登录 Google 服务的功能,以便访问某些工具,我稍后会展示这些工具。
我们为 Android CLI 添加了新功能,使其能够了解如何构建项目。
当然,您可以在命令行中使用 Gradle 或任何其他工具进行构建,但为什么 Android CLI 知道如何构建很重要呢?
因为我们推出了预览命令,让您无需 Android Studio 即可直接在终端上呈现 Compose 预览。
为此,需要构建 Android CLI。
您可以使用该功能。
我们还推出了一个新的设备命令,稍后我会演示,该命令可让您租用实体远程设备并镜像屏幕。
我们稍后会看到这一点。
我们提供了一个新的输入命令,可让您操控应用。
当然,您可以使用 UI Automator 和其他现有 API,但这样一来,智能体就不必处理太多细节,从而提高与应用互动的速度。
如前所述,我们有预览命令。
我们有新的安装命令。
当然,您也可以使用 ADB,但 Android Studio 部署功能更强大,它只会推送 APK 中发生更改的部分。
因此,如果您有一个 500 MB 的大型 APK,并且您更改了一个文件,那么系统只会增量推送已更改的内容。
我们添加了一个新的 signals 命令,以便您查看 Crashlytics 中的崩溃情况以及所有可供下载的生产数据和堆转储,这样代理就可以…我们马上就会看到。
我们还推出了一个新的性能分析器命令,让您可以在命令行中轻松进行性能分析、获取系统跟踪记录或堆转储。
我们稍后会看到实际操作。
好的。
我们开始做一些事情。
因此,我想向您展示的第一个命令是 Android 设备远程模型,您可以通过该命令列出登录后可以租用的所有设备。
这些都是我可以租用的设备。
我原本打算在实体远程设备上进行演示,但不想冒太大风险,所以决定使用手头的实体设备。
为了向您展示我的所有实体设备,我们推出了一个名为“设备中心”的新命令,该命令可镜像已连接设备、远程设备或模拟器的屏幕。
因此,我会将此页面保持打开状态,以便大家看到我手机上的情况。
好的,第一个演示。
我先来开个头,我会展示我的高科技幻灯片,并解释这个项目要尝试做什么。
因此,我不想像那些烘焙节目一样,先展示一下蛋糕,然后说“这就是它的样子”,我希望能够完整地展示整个过程。
以前可不是这样的。
所以,这会是一个真实的场景。
现在,它要做的是通过 Crashlytics 列出我的应用的崩溃情况。
我来拉取应用。
列出所有崩溃后,它会选择其中一个。
它会尝试重现该问题。
我知道那起坠机事故。
崩溃问题是,如果您点按两次“我忘记了密码”,应用就会崩溃。
现在,智能体将尝试使用输入命令重现该问题,结果应用崩溃了。
因此,我调整了 AGENTS.md,让它执行两项操作。
第一,我已预先构建好所有内容,因此我们不必观看应用构建过程。
那会很无聊。
它在相邻文件中找到了一个修复方案,因此已经修复了该问题,并将再次使用部署和输入命令来尝试重现崩溃。
它已经安装了应用,现在应该会进入“我忘记了密码”界面。
太好了
然后双击新的“我忘记了密码”按钮,希望它不会崩溃,并应该进入显示“输入您的电子邮件以重置密码”的界面。
好了,我们到了。
如果您确实修复了问题,请勿崩溃。
就是这里
该 bug 已修复。
现在,我调整了 AGENTS.md,让它告诉我:“显示你用来实现此目的的所有 Android CLI 命令。”
而且它们正在不断涌现。
因此,它使用 Android 信号来列出崩溃。
它使用 Android 安装来安装 APK,输入点按即可前往该位置。
它可以构建,但可能调用了 Gradle。
就是这么简单
我们刚刚修复了一个崩溃问题,用时大约 1 分 42 秒。
下一个目标更具挑战性。
那么,我先来抛砖引玉。
就是这里
因此,我想缩短 Pocket Casts 的应用启动时间。
对此,我唯一要说的是:“嘿,我认为我们可以,你知道,启动速度可以更快,阅读文档,让它更快。”
此操作将对应用进行性能分析。
希望它能更改基准配置文件。
它会重新构建应用、再次运行、进行性能分析、比较两个跟踪记录,并告诉我是否有改进。
这大约需要 2 分钟,因此我将让它继续运行,同时切换到下一个演示。
它在正常运行吗?
它正在发挥作用。
好的。
接下来,我想向您展示如何缩减 APK 占用空间。
我在开头提到过,我们有一个名为 Android Analyze 的新命令。
我会要求智能体进行改进,您可以这样说:“我们的版本似乎比预期的要大。
那就去吧。”
然后让智能体执行其任务。
这里会发生两件事。
希望我们能看到,好了。
智能体正在查看 ProGuard 配置。
我们更改该值,并比较更改前后的两个 APK,看看它们有何不同。
正如我之前所说,我已经预构建了这些 APK,因此代理应该知道并获取之前的 APK。
就是这里
它使用 Android Analyze 分析了旧版 APK 和新版 APK,并比较了它们的大小。
dex 大小缩减了 0.5 MB,您可以看到从 APK 中移除的所有内容的增量。
24 秒内即可完成。
现在,Pocket Casts 应用上已经可以体验到这个功能了,这可是真的哦。
这不是假的,也不是类似的东西。
我只做了一点调整,让您看不到构建过程,但只需几分钟,我们就能获得一个更小的 APK。
我返回一下,这样就完成了。
蛋糕做好了。
现在,我们优化了 Pocket Casts 的启动时间。
您可以看到,主线程 CPU 性能提升了 17%。
最重要的是,我们看到首次显示时间也缩短了 17%,从 400 毫秒缩短到了 380 毫秒。
太好了,大约几分钟后。
这会产生什么影响?
它运行了 Android 文档提取命令,因此学会了如何创建基准配置文件以及如何更新它。
它会运行两次性能分析器命令(一次在之前,一次在之后),并比较两次启动。
这里有所改进。
这就是第三个演示,也是最后一个演示。
以上就是我要分享的全部内容,不过还有一件事。
是的,我喜欢终端。
那是我。
我想向大家展示一件事,所有这些功能都已发布。
您可以下载 Android CLI 并试用。
但我们对此感到非常兴奋。
如果您参加了主旨演讲,请假装您没有看到主旨演讲。
我将向大家展示我们构建的这个工具。
我们能回到演示单元吗?
哦。
请返回到演示 1。
谢谢。
我这里有一堆 APK。
然后,我将运行“I have a Compose APK”(我有一个 Compose APK)。
这些是为 Android x86 构建的常规现成 APK。
这是一个完全运行的常规应用。
为什么我认为这非常酷?因为它只是一个单一进程。
您可以在标准输出中查看 Logcat。
没有其他正在运行的任务。
显然,您可以运行多个此类广告系列。
它非常轻巧。
它不需要嵌套虚拟化。
它在虚拟机上运行。
它会与您的代理一起运行,如果您有代理云,它就会在其中运行。
我来演示一下它的功能有多强大。
我们有一个 Google 参考应用,名为“Now in Android”。
此应用具有网络访问权限。
您可以看到这些内容。
事实上,2022 年 Android 开发者峰会即将到来,请做好准备。
不过,我们来看一个更大的应用,一个真实的应用,即 Pocket Casts 应用。
此应用中包含实际的 SO。
因此,我们有一个转换层,以便能够在 Linux 上原生运行 SO。
不过,我不会播放播客,但我们有音频。
最后,为了展示其强大功能,假设您有一个完整的原生 activity,其中大部分应用都是 OpenGL。
这是一个旧版 OpenGL ES 1 应用,但我们也有一个可在桌面设备上运行的转换版本,现在我们就可以玩了。
抱歉。
我们已在您的桌面设备上运行此功能。
就是这么简单
非常感谢
回到 Adarsh。
谢谢 Esteban。
因此,您刚才看到 Esteban 通过命令行演示的这些功能,对于您通过桌面应用(例如 Google Antigravity、Claude Code 和 OpenAI 的 Codex)使用的智能体来说,也同样非常有用。
提醒一下,在今年的 I/O 大会上,我们宣布通过官方 Android CLI 插件,在 Antigravity 中直接内置了对 Android 开发的支持。
该插件不仅会使用 Android CLI 引导智能体,还会为其提供官方 Android skills 和知识。
这样,智能体始终拥有最新的准则和架构标准,而不是过时的训练数据。
今天,Android CLI Antigravity 插件已更新,旨在为 Android 开发者打造更深度的集成,首先支持直接从 Antigravity 渲染和查看 Compose 预览,以及与设备进行交互。
现在,我们来演示一下,这样更直观。
现在,我进入了 Antigravity,接下来我将启动这个游戏。
我已加载 Pocket Casts 应用,接下来我要让智能体分析其中一个使用 View 构建的界面。
我已将其转换为 Compose,但请帮我针对大屏设备进行优化。
让应用具备自适应能力。
充分利用屏幕空间。
我给它提供了一些参考设备,它将通过这些设备来完成一些操作。
在系统处理的同时,我来演示一下设置有多简单。
在侧边菜单中,我只需前往“自定义”,即可看到有许多可用的集成。
“Build with Google”部分下是 Android CLI 插件。
在这里,我可以查看它能做的所有酷炫事情,其中许多功能我们今天已经演示过了。
我们可以看到插件自带的技能。
当然,您还可以添加许多其他技能,以及一些更深层次的集成,我们现在就来讨论并展示这些集成。
如果我返回这里,系统正在执行一些最后的步骤。
它会分析预览,显示它看到的内容,并提供一些建议和优化措施。
我们稍等片刻。
显然,大家都在醒来,启动他们的代理,所以我有点竞争。
不错。
现在已经完成了。
可以看到,它已经设置了一些参考设备,我可以点击这个对我非常有用的条状标签。
为了无缝弹出此视图,我保持在流程中,查看它提供的一些指导,比如“嘿,你知道,显然像垂直布局,特别是对于一些较宽的屏幕,是没有用的。
我们来进入双窗格布局。”
我们今天不是来测试 Antigravity 解决这个问题的能力,我已经完成了这个步骤,所以我会直接切换分支。
为了向您展示迭代速度有多快,我只需重新加载即可。当然,我可以与智能体进行对话,也可以在这里和那里进行调整,甚至无需手动重新加载预览。
智能体会自动帮我完成这些工作,而且无需进行昂贵的构建和部署,我可以直接在 Antigravity 中快速迭代。
当然,我们也希望看到它在真实设备上的效果。
因此,我可以打开 Android Device Hub。
让我快速回顾一下。
如果您觉得这个界面很眼熟,那是因为它与 Android Studio 中的设备管理器非常相似,在这里我可以看到许多已经设置好的设备。
如果我连接到远程设备,也会在此处看到。
如果我需要 Android CLI 可以创建的设备,也可以在这里快速创建。
同样,所有这些功能都是由 Android CLI 在后台提供支持。
我可以在这里连接到设备。
如果我解锁,糟糕。
我可以在这里看到更新后的应用。
我可以与它互动,验证应用是否按预期运行。
我还可以检查它是否是自适应的。
我先返回这里。
看看这些我可以使用的便捷按钮。
好的。
哦,不!
好了,就是这样。
我将其放入分屏布局中,可以看到它会自动适应单窗格布局。
如果我再次打开它,它会再次来回调整。
这就是更新后的 Google Antigravity Android CLI 插件,它不仅具备我们演示的所有最新功能,还实现了深度集成。
我们还推出了 Claude Code 和 Codex 的官方插件,并即将推出一些更深层次的集成。
好的。
好了
因此,借助 Android CLI 技能和我们的官方智能体插件,我们能够让智能体在更短的时间内以更高的质量完成更多任务。
例如,在这里,我们让 Claude Opus 在六种不同的设备上,通过六种不同的用户体验历程来浏览应用,并使用 Android CLI 查找和修复内存泄漏。
但我们也让 Claude Opus 在不使用 Android CLI 的情况下尝试了完全相同的挑战。
Android CLI 对客服效率的影响显而易见。
使用 Android CLI 时,我们可以看到 Claude 智能体能够以两倍的速度完成任务,同时使用的 token 数量也显著减少。
Android CLI 不仅为开发者带来了便利,还从根本上改变了 AI 智能体处理具有挑战性的 Android 开发者任务的效率。
我们今天介绍的许多其他命令也带来了类似的效率提升。
例如,借助预览功能,智能体无需通过缓慢的编译和运行循环来检查可组合项,而是可以即时渲染预览并向您展示,从而将迭代时间缩短多达 77%。
借助 Analyze 命令,原本需要数十次往返的复杂构建和检查过程被简化为一条结构化命令,从而减少了 5.5 个输出词元。
此外,CLI 的 Input 命令现在使用结构化语义操作,以避免智能体产生幻觉和进行复杂的坐标计算,从而使整体任务执行速度提升 25%。
因此,这里的要点很简单:为智能体提供结构化的 Android 原生 CLI 工具不仅可以节省时间和 token,还能在大多数智能体失败的地方消除阻碍。
虽然这些是我们的内部测试,但我们诚邀大家更新 Android CLI 并亲自试用。
好了
现在,让我们前往专为 Android 开发者打造的端到端平台,了解编辑器、构建系统、模拟器、性能分析器、检查器等。
当然,我指的是 Android Studio。
因此,Android Studio 通过深度集成 Gemini,在 IDE 中引领了智能体驱动的开发。
现在,从 Android Studio 访问 Gemini 变得前所未有地简单。
现在,您可以使用现有 Google AI Pro 或 AI Ultra 订阅中的配额,也可以通过贵组织的 Gemini Enterprise 账号进行关联。
但我们也从开发者那里了解到:“我和我的团队已经在使用一个非 Gemini 的智能体。
我们付费购买并配置了该服务。
我们如何在 Android Studio 中使用它?”
接下来,我们快速了解一下如何在 Android Studio Rabbit 2 中使用“自带智能体”功能。
我们来看一下演示设备。
太好了。
不错。
现在,我已在 Android Studio 中打开 Pocket Casts 应用。
首先,我要设置智能体。
因此,我将前往“设置”窗口。
在“工具”>“AI”>“代理”下,我可以看到一个新界面,用于设置我选择的代理。
Android Studio 已经内置了一个智能体,但如您所见,我还配置了几个其他智能体并进行了身份验证,包括 Claude 智能体,它已经使用了我在 Android Studio 之外与 Claude Code 搭配使用的订阅。
但也可以将其指向 API 密钥或配置。
如果您没有看到自己偏好或使用的代理,可以从不断壮大的代理市场中进行选择。
因此,请务必查看该指南。
好了
我已经完成了这一步,所以接下来我将进入智能体窗口。
我们先从简单的开始。
喂,你是谁?
您可以使用哪些 Android Studio 工具?
好的。
在这里,我已经选择了 Claude 智能体,但您可以看到,我还可以从我配置的其他任何智能体中进行选择,也可以选择我通过订阅有权访问的任何模型。
这里也确认了:“Hey, I am Claude Code.
您使用的是 Opus 5.5。”
这些是我们多年来精心打造的、专为 Android 开发者而优化的所有工具,现在智能体可以通过 Android Studio 访问这些工具。
从查找和修改文件、执行静态分析和分析文件、构建、同步、渲染 Compose 预览、部署设备,到访问内置的丰富知识库,Gemini 都能为您提供帮助。
好的,我们来尝试一些更具挑战性的内容。
我得把我的小抄复制到这里。
我们知道,随着智能体每天生成的代码越来越多,审查所有这些代码仍然是一项挑战。
作为开发者,您仍然需要对交付给用户的代码质量负责,而我们希望在这方面为您提供帮助。
下面介绍“更改审核”功能。
我们去拿吧。
它不一定非要处理本地更改。
我只需将它指向 Pocket Casts 版本记录中的一个拉取请求,它就会进行分析。
这需要一点时间,所以我已经生成了一个。
所以,就是这样。
我不需要逐一查看 15 个已更改的文件或 800 行代码。
我可以前往此处,系统会立即告诉我此拉取请求中的更改性质。
基本上,该团队添加了全滑动手势来添加或移除书签。
不过,我已经可以看到“更改审核”功能发现了一些问题。
基本上,每次重组时都会触发完全滑动操作。
因此,如果我执行了删除书签等操作,就会看到确认对话框反复出现。
而且非常酷。
它发现了这些主要问题,以及其他一些问题。
我可以查看和深入了解问题所在。
它会引用相关代码,并提供现成的修复方案。
这太棒了,因为我可以完全了解发送给代理的修复方案。
如果我想修改或调整任何内容,可以直接在这里操作。
我可以浏览此列表,勾选要修正的问题。
最后,我可以发出指令:“修复所有选中的问题。”
不过,我也可以创建演示。
如果我想更深入地了解所有这些变化在不同主题中是如何交织在一起的,
在演示中,我们可以看到此拉取请求中的更改按主题分组。
在这里,我们可以看到前面提到的问题:在行重组时,完整滑动操作可能会运行多次。
我可以了解差异是什么,代码发生了哪些变化。
我可以继续操作,并接受这些更改。
如果我想深入了解,显然可以进入编辑器,当然,Android Studio 可以让您非常轻松地浏览代码库。
以上就是 AI 变更审核和对自带智能体的支持,这两项功能都包含在 Android Studio Rabbit 2 稳定版中,此外还有更多功能:规划模式可帮助您与智能体一起完成更复杂的任务,让您能够通过并行对话同时执行更多操作,修复和调试问题(无论是现场问题还是本地问题),访问离线 Gemma 4 等等。
因此,如果您使用的不是最新的 Canary 版本(即 Android Studio Rabbit 3),请务必确保您使用的是最新的稳定版本。
好的,今天我们从三个不同的方面探讨了 Modern Android Development。
在终端中使用 Android CLI,您可以访问现场指标、连接到远程或本地设备、通过复杂的性能分析和跟踪来分析应用性能,以及执行更多操作。
在 Google Antigravity 等智能体的加持下,这些命令的功能将变得更加强大。
官方 Android CLI 插件已更新,可为 Android 开发者提供更深度的集成。
此外,我们还为 Codex 和 Claude Code 提供了官方插件,其中一些更深层次的集成将在稍后推出。
最后,我们展示了如何通过 ACP 将自研智能体直接引入 Android Studio Rabbit 2,以及如何利用这些智能体实现 AI 变更审核等强大功能。
但在 Canary 渠道中,还有更多我们尚未提及的功能,例如专为 Android 构建的声明式构建系统 Lightbuild,以及利用智能体帮助您更快速、更准确、更优质地将视图转换为 Compose 的迁移助手。
本次演讲快速概述了我们正在投资的许多重要领域。
如需深入了解我们今天探讨的主题,请务必观看本次峰会上的其他精彩演讲。
但在结束之前,我们希望您能清楚地听到一个信息:无论是 Android 原型,还是我们让您将自己的智能体引入 Android Studio,亦或是我们在 Android CLI 方面的投入,我们都在倾听社区的声音,并且我们非常需要您的反馈,以确保我们能尽可能为您提供最好的服务。
因此,请扫描此二维码,回答几个问题,继续向我们提供宝贵的反馈。
以上就是 Esteban 和我的分享。
非常感谢大家,祝大家在 Android 开发者峰会上收获满满。