新闻详情

新闻详情

首页 / 资讯中心 / 详情

Android 原生的 Compose A2UI 也来了,你还抱着 XML 养老吗?

发布时间:2026/10/1 22:03:32来源:尧图网络
Android 原生的 Compose A2UI 也来了,你还抱着 XML 养老吗?
Andorid Compose 的 A2UI 终于正式落地 AndroidX 了这个我们在 Flutter 已经聊过很多次了这次还是官方第一次通过 Compose Renderer 的形态落地到 Android。也就是 Android 原生也可以接收 A2UI 协议然后通过 Agent 描述交互界面再渲染成Native Compose Component同时执行 Agent 生成的逻辑代码。可能很多人说这玩意浪费 Token 又慢有什么用这个其实 Flutter 的时候就讲过了首先它一些 UI 可以根据用户数据提前在后端生成在使用之前就匹配好也可以 Cache真正用的时候直接就可以渲染出来就行其次还有 Client-Side Functions也就是逻辑也可以根据 UI 一起绑定动态生成类似于Catalog可以同时持有CatalogItem和ClientFunction生成 capabilities 时每个 function 会暴露name、description、parameters和returnType然后生成完整 Catalog Schema 时会把每个函数变成一个合法的FunctionCallschema。所以实际上在 A2UI 场景模型其实拥有的是一张“能力菜单”它知道有哪些函数知道函数需要什么参数也知道返回值是什么但真正的实现还是在 App 手里具体实现模型不关心它只关心需要组合成什么UI UI 需要加载什么逻辑。然后现在这套逻辑可以用在 Android Compose 上面了官方 Compose Renderer 已经有协议解析、Schema Validation、Surface State、Compose Runtime 和 Component Catalog。Agent 发来的结构化 UI 更新进入A2uiMessageProcessor对应 Surface 更新后Compose 只重组真正变化的组件而且它还支持反向事件所以用户操作原生 Button、Picker 后结果可以沿着 A2UI Client Event 回到 Agent。而这里 Jetpacker 源码里的核心初始化其实很简单初始化之后界面会直接消费这些activeSurfaces交给A2uiSurface渲染。private val messageProcessor A2uiMessageProcessor( catalogs listOf(bookingAssistantCatalog()) ) ​ val activeSurfaces messageProcessor.activeSurfaces不过目前的 Jetpacker 还没有做到完全的「ADK Agent 直接吐标准 A2UI Tree」目前看BookingAssistantViewModel.kt是通过 Cloud Run 后端 SSE 发来的是 ADK Event其中还夹着类似time_selection、seat_map、ticket_selection这样的业务语义然后 Android 的parseAndApplyEvent()再把它们转换成InteractiveOptionPicker、SeatSelectionPicker、BookingConfirmation之类的A2uiComponentPayload所以 A2UI 暂时只是解决了客户端的结构化 UI Runtime但 Jetpacker 这个 Sample 里Agent Runtime 与 A2UI 之间还存在一层业务 Adapter。然后就和之前聊的 Flutter A2UI 一样生成的权限会被 Component Catalog 卡得很死 App 开发者先定义一个 Component CatalogAgent 只能用这里声明过的 Component、Property 和 Client Function。Android 官方把 Catalog 叫做 formal contract比如你的 App 可以开放Text、Card、Button也可以像 Jetpacker 一样增加自己的SeatSelectionPicker、BookingStatus、BookingConfirmation然后 Agent 能决定“现在需要一个 SeatSelectionPicker标题是什么、座位选项是什么”。之后真正的 Compose 实现、主题、交互能力能说客户端提供而且 AndroidX 会在 Payload 进入 Compose UI Tree 前做 Schema Validation如果 Agent 幻觉出一个不存在的 Component会变成 Error State 并回报给 Agent。比如 Jetpacker 目前同时有两段航班、一个酒店、一个博物馆和一个餐厅Android 把这些行程发给 Cloud Run 上的 Python ADK Backend然后服务端的ItineraryOrchestratorAgent先按类型拆成 Flight、Hotel、Museum、Restaurant 几组然后塞进 ADK 的ParallelAgent每一组内部如果有多个项目还可以继续创建多个子 Agent 并行跑在这个过程里Agent 先生成一个起飞时间发送time_selection随后直接停在await session.pause_events[title].wait()Android 收到 SSE 后把这个状态变成 A2UI 的InteractiveOptionPicker然后用户在手机上点 Confirm客户端事件里带着具体agentId和选择结果回到/respond服务端把结果写进 Session再调用对应的session.pause_events[pause_key].set()再之后刚才被挂起的那个 Flight Agent 才继续执行下一步 Seat Selection酒店会停下来等待 Reservation Confirmation博物馆等待 Ticket Confirmation餐厅等待人数选择而其余没有被用户卡住的 Agent 会继续执行也就是用户可以在多个动态 A2UI 之间并行操作并行处理这种能力其实在 AI 手机场景上还是有些用的至少能可以同步处理多个事件然后通过可交互 UI 的方式来让用户决策不然每次都让用户看一堆文字的体验去试试不咋地所以 A2UI 也是 Tibo 说的场景之一也许未来代码根本不需要每次发版只需要根据场景动态生成就好了
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基于Swin Transformer的遥感变化检测实战:双时相影像判读 2026/10/1 22:54:30

基于Swin Transformer的遥感变化检测实战:双时相影像判读

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Manjaro/Arch下Fcitx5搜狗输入法实战安装指南 2026/10/1 22:54:16

Manjaro/Arch下Fcitx5搜狗输入法实战安装指南

1. 项目概述:为什么在 Manjaro/Arch Linux 上装搜狗输入法是个“高频痛点”Manjaro 和 Arch Linux 用户里,十有八九都卡在同一个地方:装完系统,打开浏览器想搜点东西,结果键盘敲出的全是英文字母——中文输入法没起来。…

阅读更多 →
AI生成代码如何匹配团队风格与工程一致性 2026/10/1 22:54:16

AI生成代码如何匹配团队风格与工程一致性

1. 这不是代码问题,是团队认知断层的显影 “AI写的代码一跑就通,但完全不像我们组写的”——这句话最近在好几个技术团队的茶水间、站会间隙、甚至代码评审会上反复出现。它听起来像一句调侃,但背后藏着一个正在快速扩大的现实裂口&#xff1…

阅读更多 →
示波器核心参数与实战技巧:带宽、采样率、探头和触发全解析 2026/10/1 22:54:16

示波器核心参数与实战技巧:带宽、采样率、探头和触发全解析

1. 示波器到底在“看”什么:从一堆波形说起我第一次拿起示波器的探头时,心里想的是“这不是个大号的万用表嘛”。后来被老师傅纠正了——万用表告诉你“现在是多少伏”,示波器告诉你“电压在过去这段时间里是怎么变的”。这一个“怎么变”的差…

阅读更多 →
ESXi虚拟机导出导入的底层逻辑与OVF/OVA交付实战 2026/10/1 22:54:16

ESXi虚拟机导出导入的底层逻辑与OVF/OVA交付实战

1. 为什么“导出导入虚拟机”不是点几下鼠标的事——ESXi环境下的真实交付瓶颈你有没有遇到过这样的场景:在Dell R730服务器上部署完ESXi 8.0,搭好vSphere环境,创建了一台CentOS 7 Hadoop 3.3 Spark 3.3伪分布式集群的虚拟机,测…

阅读更多 →
LabVIEW活用ActiveX生成Excel报表:不装NI报表工具包也能搞定 2026/10/1 22:54:16

LabVIEW活用ActiveX生成Excel报表:不装NI报表工具包也能搞定

如果我说,用LabVIEW生成Excel报表,不一定非要装NI Report Generation Toolkit,可能很多人第一反应是不信。毕竟网上90%的教程翻来覆去就是那套流程:拖出New Report.vi、Append Table To Report.vi,然后万事大吉。但这些…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉