百度智能小程序框架性能优化实践
阅读原文 一、百度智能程序整体框架及演进 整个移动互联网一直是在 NA 和 H5 之间寻找权衡,NA 的性能好、能力强;H5 灵活性更高。我认为渲染分为两派,一派就是 NA 渲染派,一派叫做 H5 渲染派。 NA 渲染派,比较有代表性的如 RN 、 Flutter ;Web 渲染派,比如百度的轻应用,以及之后做的小程序。 1. 开发全流程概览 百度曾经做过的 Web 渲染派的三个代表产品,分别是轻应用、直达号和小程序。 轻应用,是 H5 + 端能力。它是一个标准的 H5,增加了一些 NA 的 API,比如定位等。 直达号,在技术层面跟轻应用是一样的。 小程序,本质上是一个受限的 H5 + 大量丰富的 API + UI 组件。现在我们给小程序提供的 API 有 300 多个,组件有 30 多个,组件是有界面的。比如,视频、地图 。 为什么小程序要受限,主要有两个原因: 保持体验的一致性。H5 太过灵活,JS 随时可以去改变界面。 安全考虑。因为我们提供了大量 API 和组件,且这些都是很底层的一些能力,比如电话号码、账号,肯定不能轻易开放给大家。 怎么受限,主要有两点: 编写语言,不再是直接写 HTML ,而是用自定义语言 swan 来编写 。 runtime 层有两个栈,一个是渲染栈,一个是 JS 执行栈,这两个栈从物理上隔离,以保障安全性。 2. 智能小程序框架 (1