鸿蒙一次开发多端部署:我们踩过的三个适配坑
【摘要】 把同一套 ArkUI 代码跑到手机、平板、车机和智慧屏上,我们的第一版 Demo 只用了两天,但让它真正可用花了三周。三个坑值得记下来。第一个坑是断点不等于布局。一开始我们按 vp 宽度切了 sm/md/lg 三档,结果平板横屏和折叠屏展开后布局全乱。后来明白:断点是输入信号,不是设计稿。真正的做法是先抽出内容层级——什么是主信息、什么是辅助操作——再让断点决定这些层级的组织方式,而不是决定...
把同一套 ArkUI 代码跑到手机、平板、车机和智慧屏上,我们的第一版 Demo 只用了两天,但让它真正可用花了三周。三个坑值得记下来。
第一个坑是断点不等于布局。一开始我们按 vp 宽度切了 sm/md/lg 三档,结果平板横屏和折叠屏展开后布局全乱。后来明白:断点是输入信号,不是设计稿。真正的做法是先抽出内容层级——什么是主信息、什么是辅助操作——再让断点决定这些层级的组织方式,而不是决定像素位置。改完之后,一档断点就能同时覆盖 8 寸和 12 寸设备。
第二个坑是分布式能力的"先通后稳"。跨设备迁移和流转 Demo 里跑得很顺,真机接上三个设备就开始丢状态。原因是业务把状态存在页面里,而页面在另一台设备上是被重建的。把状态收敛到一个可序列化的数据模型、页面只负责渲染,迁移才稳定。这条原则听起来像老生常谈的 MVVM,但在分布式场景下它是硬约束。
第三个坑是性能预算必须按最弱设备定。我们习惯用旗舰机调优,量出来 60 帧很漂亮;到车机上首屏直接 1.2 秒。后来把基线改成目标设备里最低配的那台,动画统一走系统并行化能力,列表复用做到底,才算过线。
回头看,多端部署的难点不在 API 多复杂,而在"一套代码"这个前提会不断诱惑你偷懒:用一个断点糊弄所有设备,把状态塞进页面,用最好的机器验收。把这三件事反过来做,剩下的适配量其实很小。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)