当前位置:首页 > 报告详情

day1_4-何斌-支付宝的 KMP 架构实践.pdf

上传人: 明**** 编号:1069830 2026-01-17 31页 5.29MB

1、Developed by JetBrainsKotlin何斌支付宝2025 Kotlin 中文开发者大会支付宝支付宝 KMP 架构架构实践实践何斌蚂蚁集团 无线开发专家专注跨平台与渲染体系研发。曾负责小程序在多端平台的适配与建设,以及跨平台 UI 框架的设计与应用。曾作为自研内核 MYWeb 核心开发者,负责 Chromium 在 Android 上的多进程架构改造、GPU 进程启用、渲染问题解决目前聚焦 KMP+Compose 方向,专注性能提升与体验优化。其他:西安电子科技大学/网龙/喜马拉雅/蚂蚁业务挑战:为什么需要多端一码技术选型:为什么是 KMP战役目标:支付宝 KMP 做了什么未来

2、展望:成果与规划构建多端一码研发体系,支撑业务高效迭代技技术决策中的矛盾KMP 社区版支付宝 MYKMPMYKMPCMP 社区版社区版 1.6.11支付宝支付宝 MYCMPAntUI WidgetsAUSkinAUTokenTorchMYComposeCMP 社区版社区版 1.8.2重组监控渲染增强白屏监控渲染一致性挑渲染一致性挑战-InteropView 嵌入式卡片 LottiePlayer,Lottie/视频播放器 iOS combining unicode Text 组件 Gif 组件.原生模块的快速复用,Compose 未支持能力的桥接动画:iOS 不支持 fadeIn fadeOut

3、背景色:InteropView 若透明/半透明,则需要露出 Compose 的内容View 交互:事件冲突确定的背景:贴图/贴颜色透明背景:离屏渲染不确定的背景:CALayer原生渲染渲染一致性挑渲染一致性挑战 文字文字渲染渲染异常异常荣耀部分手机的部分荣耀部分手机的部分Rom上上 文字渲染失文字渲染失败异常设备的 rom 采用了方正的文字排版算法,该文字排版引擎不支持非 Android TextView 使用TextLayout针对性地新开一条文字布局渲染流程渲染一致性挑渲染一致性挑战 文字文字渲染渲染异常异常skia 对中文字符中文字符的 weight 解析解析存在问题,即设置的 weig

4、ht 为 medium,实际上还是 normaliOS:Skia 与 CoreText 层对接中适配了对 FontFamily 的处理OHOS:优化 Skia 字体解析时 font-variations 解析逻辑iOS 字体字体设置 weight 失效失效渲染一致性挑渲染一致性挑战 文字文字渲染渲染异常异常对于 zalgo 组合字符 Skia 的高阶接口skparagraph 存在问题,即在文字文字绘制的shape 阶段会失败,导致组合字符渲染出来是乱码使用 UILabel 离屏渲染离屏渲染,渲染结果作为 ComposeImage 组件的内容展示彻底的解法需要修改 skparagraph,会影

5、响所有的文字渲染,风险太大iOS 组合字符渲染乱码渲染一致性挑渲染一致性挑战 文字文字渲染渲染异常异常iOS 上文字间隔和原生表现不一致,整体比原生宽一些SkParagraph 模块排版存在 bug,暂无解法渲染一致性挑渲染一致性挑战 OHOS 主题字体适配鸿蒙 Compose 适配字体绘制(Skia)只支持了系统默认字体,未支持对用户自定义字体设置的感知和绘制获取自定义字体对应 Typeface 并改造 Skia字体绘制逻辑渲染一致性挑渲染一致性挑战 iOS渲染渲染黑屏黑屏iOS Metal 渲染异常渲染异常 后台渲染 GPU OOM GPU Hung 后台渲染后台渲染GPU内存降级 CAL

6、ayer 渲染方案性能性能-度量度量性能指性能指标帧详细信息性能性能-监控体系系异常监控异常监控性能统计性能统计全链路埋点全链路埋点性能性能-工具支持工具支持性能性能 优化 Android Composition 预创建 资源(图片、字体等)异步预加载 Androidx class 预加载,baseline-profile预创建 Unuse 的模块 非无障碍模式下关闭无障碍相关能力 同步读取 animatioinScale裁剪 ComposeView 复用 Androidx R8 开启 异步重组方案,未上线性能性能

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
1. **支付宝KMP架构实践**:何斌团队聚焦KMP+Compose,构建多端一码研发体系,支撑业务高效迭代,技术选型为KMP。 2. **核心挑战与解决方案**: - 渲染一致性:通过InteropView桥接原生能力(如LottiePlayer、Gif组件),解决透明背景离屏渲染、文字排版异常(如荣耀ROM、iOS字体weight失效)。 - 性能优化:Android采用预创建、异步重组;iOS通过CALayer渲染转移GPU内存至系统进程,Metal管线预热。 3. **成果与规划**:MYKMP/CMP社区版迭代至1.8.2,未来持续优化性能与体验,上线业务支撑高效迭代。
**KMP如何提升性能?** **文字渲染如何解决?** **多端一码如何实现?**
客服
商务合作
小程序
服务号
折叠