跨端是什么
跨端背景
随着业务的发展,产生了越来越多的业务场景,同时随着技术的发展,产生了越来越多的端,PC端(Windows,Mac),移动端(安卓,IOS)、web端,IoT设备(车载设备、手表)等
跨端目标
- 研发效率高
- 学习成本低
- 多端一致性高
- 用户体验好
- 稳定性高
- 性能体验好
- 动态化
- 支持动态变化下发,满足日益增长的业务需求
技术方案
- Hybrid:基于WebView渲染,通过JS Bridge把一部分系统能力开放给JS调用
- 原生渲染方案:使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面
- 自渲染方案:利用Skia重新实现渲染管线,不依赖原生组件
- 小程序方案:使用小程序DSL+JS开发,通过中间层桥接后调用原生能力,使用webview来渲染UI界面
收获
随着端越来越多,跨端的需求会越来越强烈,跨端技术方案也会不断迭代,核心目标仍然是「write once, run anywhere],未来自渲染可能会出现更多机会。
小程序的逻辑层和渲染层是分开的是双线程的运行模式
渲染层又叫视图层主要负责小程序的UI渲染,也就是展示给用户的部分,界面渲染相关的任务全都在 WebView 里执行,如果一个小程序存在多个界面,就存在多个 WebView 线程。
逻辑层,主要负责逻辑处理、数据请求、接口调用等内容。
系统层是负责和两个线程通信,并且和原生平台对接的,它可以调用一些平台提供给用户的能力,也可以帮助用户完成一些需要操作系统完成的内容。
合理使用分包 使用分包加载是优化小程序启动耗时效果最明显的手段。建议开发者按照功能划分,将小程序的功能按使用频率和场景拆分成分包,实现代码包的按需加载。同时需要注意控制分包数量,避免过多拆包。 移除无用文件 目前小程序打包是会将工程下所有文件都打入代码包内,在开发迭代过程中,如果不及时清理无用的资源,会使得包体积越来越大,开发过程中要养成良好的习惯--及时清理没有使用到的资源,防止资源冗余。