美团Compose专项面经:动画API、LazyColumn性能、Compose测试、Material3适配
上篇聊完Framework渲染管线,这篇进入Compose专项。美团2023年大规模推进Compose落地,外卖商家端、骑手端都有实践。面试不只考"会用",还要知道底层怎么工作、性能坑在哪。今天8道题覆盖美团Compose面试核心考点。Q1:Compose的动画API有哪些?怎么选?animate*AsState:最简单的动画API。值变化时自动执行动画,适合简单属性动画(如颜色、尺寸变化)。Animatable:命令式动画——手动控制开始和结束。适合手势拖拽、弹性动画等需要精确控制的场景。updateTransition:管理多个属性同时动画。定义状态集合,状态切换时所有关联属性一起动画。适合复杂UI状态切换。InfiniteTransition:无限循环动画。适合Loading、呼吸灯等持续运行的动画。典型用法:animateColorAsState(if (selected) Color.Red else Color.Gray)做颜色动画,Animatable(0f).animateTo(100f, spring())做位移弹性动画。追问:Compose动画性能怎么样?Compose动画在RenderThread执行,不阻塞主线程。比传统View动画更高效,但复杂动画仍需注意重组开销。Q2:LazyColumn性能优化怎么做?LazyColumn vs Recy