尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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

相关推荐

【架构专栏】补充2 数学与经济管理 1/2

【架构专栏】补充2 数学与经济管理 1/2

架构设计 相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 系统架构设计 相关文章: 【架构专栏】架构考试介绍 【架构专栏】架构知识点 知识总览​ 共19章内容,主要包括: 1)1绪论、2计算…

📅 2026/10/1 21:58:38
【LeetCode 204. 计数质数】从暴力枚举到埃拉托斯特尼筛法

【LeetCode 204. 计数质数】从暴力枚举到埃拉托斯特尼筛法

如果你也是因为超时问题而来,请跳转至【LeetCode 204. 计数质数】从暴力枚举到打表预处理 题目描述 给定整数 n ,返回所有小于非负整数 n 的质数的数量。 示例 1输入:n 10 输出:4 解释:小于 10 的质数一共有 4 个,…

📅 2026/10/1 21:58:38
AI测试效率翻倍:25个Skill拆解测试工作流实战

AI测试效率翻倍:25个Skill拆解测试工作流实战

1. 为什么我把测试工作流拆成了 25 个 Skill先说结论:我日常做 AI 测试和 Agent 开发,真正高频复用的能力,其实就那么二十几个。把它们从"每次重新写提示词"变成"固定下来的 Skill",是我这两年效率提升最明显…

📅 2026/10/1 21:58:38
MORE NEWS

更多资讯

📰

家具家装行业AI智能体层落地:Agent、MCP、Skill与Token实战

1. 家具家装行业为什么需要AI智能体层家具家装这个行业有个很特殊的地方:它既是零售,又是服务,还带着一点制造业的尾巴。一个客户从进店到最终家具入户,中间要经过量尺、设计、报价、下单、拆单、生产、仓储、配送、安装、售后&am…

📰

AgentScope 从 Framework 到 Harness:Agent 生产环境稳定性治理实践

1. 从框架到“马具”:AgentScope 这次定位调整到底在说什么AgentScope 这个项目,如果你在过去一年里关注过开源 Agent 生态,大概率不会陌生。它最早是以“Agent Framework”的身份出现的——提供一套搭建智能体应用的基础设施,包括…

📰

AI Agent实战:用WorkBuddy打造每日情报自动推送系统

每天早上最折磨我的事,不是起床,而是刷 AI 资讯。公众号好几屏、推特列表加几十个、论坛帖子一堆,明明知道大部分内容跟我没有关系,可就是怕错过一条重要的。后来我实在烦了,就花了点时间把 WorkBuddy 配成了一个"…

📰

从零搭建AI工程化:模型到可靠系统的完整路径与踩坑指南

我最近在梳理手头一个从零搭建的 AI 工程项目,复盘完整个流程,最大的感受是:很多人不是不会写模型,而是卡在了"从模型脚本到可靠系统"这段路上。正好借这篇内容,把从零开始做 AI 工程化的完整路径、关键决策…

📰

Tomcat注册Windows服务:从启动失败到生产级稳定运维

1. 为什么非得把Tomcat塞进Windows服务里?——不是为了“高大上”,而是为了“不掉链子”你有没有遇到过这种场景:凌晨三点,客户投诉系统打不开,你抓起手机连上公司内网,发现Tomcat进程早就悄无声息地挂了&a…

📰

Substance Painter 6.1.0.6中文版次世代PBR贴图全流程实战指南

1. 次世代贴图工作流的核心定位与选型逻辑 1.1 为什么PBR流程下Substance Painter成了绕不开的一环 聊次世代游戏贴图,绕不开的一个核心话题就是PBR(Physically Based Rendering,基于物理的渲染)。大概从2015年前后开始&#xff…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬