「技术」如何快速开发一款APP?( 七 )
本文插图
大家可以认为渲染层里面是有一个WebView有选择 , 那么渲染才是WebView , 那么实际上它的一些事件执行 , 像一些逻辑的执行 , 是开了另外一个JS引擎去做这个事情 。 那么它们之间通过Native层的一层JS Bridge进行通讯 , 那么每次逻辑层把需要更改的配置的一些信息去成立到Native层 , Native层获取到渲染层里面已经渲染了的DOM信息 , 然后计算出差分逻辑 , 最后下发到我们的渲染层 。 那么渲染成每次去更新UI的时候 , 都是会把差异化的一些数据把它给渲染出来 。 那么在这种情况下 , 我们的渲染层和逻辑层之间的执行是完全隔离的 , 这个是我们所讲的小程序双线程的一个概念 。 同时小程序因为有平台的容器作保障 , 所以说我们这边能快速的打通Native层的一些存储网络多媒体的能力 。 在这种情况下 , 我们使用小程序开发的时候 , 可以用最少的成本去开发出性能最好 , 动态能力最强的一个框架 。
那么同时我们小程序提供了一个ID构建和发布的一个能力 , ID构建的话 , 我们现在支付宝这边有提供小程序的IDE , 同时开发支付宝小程序 , 淘宝小程序 , 还有mPaaS小程序 , 它们三者之间虽然技术架构不太一样 , 但是它们之间的DSL是相同的 , 你可以使用同一套代码去开发 。 那么Native这一层 , 首先先对你传递的参数做一层解析 , 解析完之后去提前加载小程序的资源 , 然后去创建一个渲染页面 , 比如说这里面Render我讲了 , 目前来说是基于UC WebView , 但是它同时也可以不基于UC WebView , 这个对于业务来说是完全没有感知的 , 那么在渲染层初始化完毕之后 , 我们这边会创建了一个JS的worker , 那么这个worker就是我们刚刚讲的逻辑层的一个概念 。 worker创建完之后 , 会对于原先小程序里面执行的小程序JS代码里面执行的一些事件做监听 , 那么会回到小程序里面的一些事件的callback , 然后小程序的JS引擎里面 , 对于业务代码层面上对这些callback做出一些响应 , 比如说Set Data之类的回调 。 调完之后 , 会传递到Native这一层 , Native这一层把原先去更改的一些数据传递给渲染成层 , 然后渲染层在下一次事件循环中 , 把这次传的数据做一个差分的渲染 , 然后做完之后 , 我们就能看到我们想要的一个产品 , 那么这个就是我们刚说的小程序的双线程的概念 。 逻辑上在worker这边 , 然后渲染层在Render这边 。
小程序的特征是非常规范的提供了这么几个能力 , 首先第1个包体的构造是在一个标准要求之下的 , 我们必须提供这样的一个包体的结构 , 然后UI组件和API是另外提供的一个能力 , 然后入口规范的情况下 , 我们能快速的把我们小程序的内容和小程序的整体的页面的管控 , 收敛到一个比较小的口子上,那么能最大的防止各种风险 。
本文插图
同时它的安全和隐私的管控 , 在于我们的Native的容器里面已经包装好了 , 比如说小程序想获得一些隐私相关权限的时候 , 需要我们的Native这边在UI层面上作出一些响应 , 比如说想要获得用户定位的能力 , 或者说想去获得用户的手机号 , 这些东西我们都需要在Native这一层去向用户去申请权限 。 然后同时我们又提供了一些小部件 , 小部件到是一个可以认为是插件 , 或者说是像UI组件这样的一个东西 。
然后我们的小程序的整个生态 , 目前来说 , 支付宝的mPaaS小程序有在各个地方都使用 , 比如说像饿了么、高德 , 淘票票之类的东西都在用 。
本文插图
【「技术」如何快速开发一款APP?】
推荐阅读
- 「A1canton」智慧酒店震撼来袭——虚拟现实VR篇,五大技术革新传统酒店
- 人民网@【战“疫”说理】疫情防控中如何有效实现经济复苏?
- 「北京头条客户端」科技部:将加大对前沿技术研发的攻关和支持力度
- 『财经涂鸦』三七互娱爆发的秘密:该用技术公司估值模型来看它了
- 『车家号』高低功率如何选?后期改装就能“低变高”了吗?,同一款发动机
- 手机、眼镜如何消毒?清洁要从细节做起
- 『音频』iOS如何导入百度云的音频(易剪和易剪多轨版)
- 2020年你应该关注的8大技术趋势,眺望曙光TVP线上技术闭门会纯享实录
- 十大突破性技术-NMN,叫你如何选择最好的NMN
- 妙家影视■如何计算低压开关柜铜排用量?这是我见过最漂亮的文章!
