先问读者一个问题:现在你有多久没有手写代码了?
一些小伙伴反馈,最近面试开始问一些 AI 协作编程的一些术语,如 MCP、Skill、Workflow、Spec-Coding 等等,用于考察对 AI 协助编程的了解情况。
这些个术语,对于那些习惯了AI “问答式”编程和“许愿式”编程的同学,可能需要稍微了解下。
今天分享一个荣耀的图显岗位面试回忆(当事人已被刷掉)
AI 协作编程:Skill 和工作流的区别
Skill,即技能,把某种特定能力打包成一个可被 Agent 调用的独立模块。定义技能是做什么的、什么时候该用以及“怎么做”的规范。
工作流,即工作流程 Workflow ,如何完成目标的执行流程。Workflow 里装的是顺序、分支、回环和中止条件。
一个 Workflow 可由多个 Skill 组装而成,一个 Skill 能被多个 Workflow 复用。
Surface、GraphicBuffer 和 Layer 有什么区别?
Surface 是 App 侧的绘制入口,本身不持有像素内存,本质是 BufferQueue 生产者端的句柄(IGraphicBufferProducer),App 通过 Canvas 或 EGLSurface 往上面画;
GraphicBuffer 是真正承载像素的内存对象,包含宽高、格式、usage、stride 与 buffer handle,由 Gralloc 分配(底层走 DMA-BUF / ION),可被 CPU、GPU、显示控制器三方映射;
Layer 是 SurfaceFlinger 侧的合成单元,持有 BufferQueue 的消费者端
(IGraphicBufferConsumer),并携带 Z 序、裁剪、变换、透明度、混合模式这些合成属性,SF 合成时遍历的就是 Layer 树。
Android HWC 的合成策略
合成策略不是 SurfaceFlinger 定的,是 HWC 定的,SF 只负责执行。
SF 收到 VSync-SF 后遍历可见 Layer,acquireBuffer 取到各自 buffer 并等待 acquire fence,再把每层的 buffer、source crop、display frame、transform、alpha、混合模式、Z 序打包成 Layer 列表,调用 validateDisplay 交给 HWC 评估;
HWC 依据硬件能力逐层返回 composition type——DEVICE 表示这一层由硬件 overlay 直接叠,CLIENT 表示这层它做不了、要退回 GPU;
SF 再把所有 CLIENT 层用 RenderEngine 合成到一块 client target buffer,最后 presentDisplay,由显示控制器把 device 层和 client target 一起送显。
进技术交流群,扫码添加我的微信:Byte-Flow

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。