开发者学堂课程【mPaaS 小程序开发实战: mPaaS 小程序介绍+接入 mPaaS 小程序并实现启动 Android 版(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/301/detail/3506
mPaaS 小程序介绍+接入 mPaaS 小程序并实现启动 Android 版(一)
内容介绍:
一、移动开发背景
二、mPaaS 小程序技术解析
三、基于mPaaS 小程序的移动端能力构建
四、代码演示:mPaaS 小程序实战演示
五、CSDN&笑联基于 mPaaS 小程序的重构之路
一、 移动开发背景
1、支付宝 App 发展历程
首先回顾支付宝的发展历程。从2013年之前,支付宝被推出。在最早期,支付宝是工具型APP,是一个单体应用,主要承载的就是支付的作用,为淘宝去做一个担保交易。2013年余额宝在推出支付宝,规模呈现扩大。这时它需要平台,即进入平台型APP,拥有服务化和模块化,支付宝的功能也越来越多。2015年开始之后,支付宝的业务进行了一个成功的状态,阿里集团和蚂蚁集团的很多业务在在支付宝上进行。这时支付宝面临的问题是一个动态化和高可用的问题。2018年以后,随着小程序的推出,支付宝处于一个新的阶段,面临的挑战是如何去拥抱开发者,然后去开放生态。
2、App 发展过程中遇到的常见问题
1)动态性及体验
面对多样的需求,如何保证业务的快速迭代?
保证 App 动态更新的前提下,如何保障用户体验?
2)研发效率
如何做到代码一次编写,多端复用?
没有客户端开发经验,如何提升开发效率?
3)开放生态
如何将能力开放给更多开发者?
如何连接更多生态平台,丰富自身 App 场景?
3、现阶段移动端技术方案分析
问题分为三类开发成本、用户体验、技术的动态性。
技术角度分为 Native、HTML5、ReactNative、Flutter。
从开发成本角度来说,Native 开发成本是最高的,只有一颗星,开发成本越高,星会越少。因为 Native 每一次开发,需要开发双端。所以开发成本是最高的。HTML5的开发成本是最低的,首先它的技术是最普及的,同时 HTML5 开发一次可以在两端上同时运行,所以 HTML5开发成本五颗星。ReactNative 的开发虽是学习一次到处编写,但实际上在双端上有不少的适配工作。同时需要在双端上写拓展,拓展的内容如对 ReactNative 源码进行一些修改,开发成本比较高。Flutter 可以做到一次编写双端运行,在业务上的开发成本其实是比较低的,但主要的开发成本是在维护这个框架。因为 Flutter 迭代比较频繁,框架若不支持,要频繁的去更新,或者对 Flutter 进行修复,开发成本也比较高。
从用户体验看,Native 最好,支持各种各样的原生渲染,所以是五颗星。HTML5 体验是最差的,只支持 web 的渲染。ReactNative 的渲染,是将J S解析成原生控件,然后并渲染,但是只是进行了一层翻译,所以体验上并不完美,所以是三颗星。Flutter 是统一的渲染内核,所以用户体验是比较好的。相比于云原生来说,仅有一些体面上的差异,是仅次于原生的一个用户体验。
从动态性来分析,首先 Native 是最差的,只能做一些热修复或者热更新,并且ios基本上是不支持这么做的。HTML5 是最好,在双端可以通过离线的方式或者在线的方式直接把业务下载下去,HTML5 是四颗星,是通过下发 J S 来打造这个动态的更新。本身 Flutter 其实是不支持动态的,但是随着这个Flutter生态越来越多,Flutter 的动态化的这种方案也比较多,所以是三颗星,比如说通过 J I T 转成 a O T 的方式,或者是一些动态引擎,解析渲染然后再配合一些简单的逻辑指纹来打造动态性的能力。
4、mPaaS解决方案
重磅发布:兼顾动态性、体验、开发效率、开放性的 Hybrid 架构方案
二、 mPaaS 小程序技术解析
小程序技术定义:小程序,是一种依赖Web技术,集成了原生能力的,新的移动应用程序格式。
小程序特点:
l 获取便捷
l 连接稳定
l 安全可靠
l 性能优异
1、小程序开发框架
mPaaS 小程序,基于 Web 技术,学习成本低。一套小程序代码,同时支持 iOS 和 Android,接近原生体验。同时提供丰富的组件和 API,如获取用户信息、本地存储、支付功能等。
mPaaS 小程序开发框架包括:小程序基础框架(App、Page、视图、自定义组件)、基础组件及API(视图容器、地图、表单类、导航、开放组件、手势类、媒体、布局导航、画布、操作浮层、其他)、开发及自定义API(App、Page、视图、自定义组件)、小程序 IDE(App、Page、视图、自定义组件)。
当编写完成之后,可以发放到第三方小程,或者自有业务小程序及阿里系场景小程序。
2、mPaaS 小程序架构
首先是渲染层和逻辑层分离,双线同时进行的架构。渲染层每个页面会有一个渲染器来进行渲染。渲染之后与一些页面的事件交互,通过事件发送到Native层的消息通道,消息通道将这些事件发给逻辑层,逻辑层找到对应页面的逻辑,进行逻辑处理。
处理完成之后,将结果返回给页面层,页面层根据结果再去对结果进行确认,完成一个小程序整体的一个架构流程处理。同时 Native 层会提供 App Native 底层,提供存储、网络、多媒体等 Native 能力,提供给逻辑层和渲染层。
右边是一个整体运行时的一个渲染架构。render 是一个渲染器。渲染器可能是通过 web 的渲染器,或者是通过 platter 渲染器或者是一些 web 加 native 结合的渲染器等等,渲染器是可以随时替换的。
左边是小程序的构件和小程序的发布。构建就是在代码编写中,可以进行这个多端转换,然后编译打包预览调试。小程序构建完成之后,可以进行上传,服务端进行审核,审核完成之后,可以进行发布。发布之前可以对本次发布进行一些灰度的验证。
3、mPaaS 小程序标准
①双线程结构: 具备双线程结构,即渲染和逻辑分离。
②包体构造: 按一定的规范,如描述文件、页面结构文件、样式文件和逻辑文件。
③U 组件&Apl: 小程序一定要对开发者提供一些基础的 ui 和 api。
④入口规范: 有一个合理的一个入口规范的系统参数的
⑤部件: 小程序要支持以小控件的形式嵌入到别的页面当中的入口。
⑥安全&隐私管控: 小程序一定要具备力和隐私管控
4、mPaaS 小程序动态性:快速发布
①智能灰度能力,多种升级策略
内部灰度,外部灰度,人群地域、机型网络等多种规则可供选择
②增量差分离线包更新能力
减少数据冗余及设备带宽,在移动端网络条件不稳定场景下体现优势
③系统高性能保障
RT <3ms , QPS 5wls,触达率99.99%
5、mPaaS 小程序动态发布实践
发布流程: 首先制定一些指标,然后通过灰度发布去验证指标,然后运维监控,然后指标验证通过之后进行正式发布,对线上的这个小程序进行持续监控,这就是一个完整的周期。之后再进行下一次的编码共建,下一次的这个制定指标,这个就是一个小程序的完整的一个发布实践。
有的小程序的框架,或者是平台的可以把业务分成多个业务或多个产品,每个产品跟每一个产品之间的迭代,互相不影响
6、mPaaS 小程序安全性
l 连接安全
基于阿里巴巴无线保镖能力,保障小程序请求安全,篡改后的请求无法通过校验。
l 包体安全
包体经过加密、加签,保障下载过程安全,篡改后的小程序包无法正常使用。
l 权限安全
完整的权限管理体系,针对不同小程序开放不同权限,保障用户的隐私安全。