MLN -- 陌陌团队一个支持热更新的移动跨平台框架

前言

最近偶然在Github发现了一个跨平台的新框架 -- MLN,项目介绍上说是一个基于Lua语言的高性能、小巧、易上手的移动跨平台开发框架,而且支持热更新。引发了个人兴趣,怎么来讲也要去尝试一番,一个兴趣点固然是由于陌陌这个名字,另外一个就是热更新(毕竟连flutter都不支持热更了)。前端

MLN项目介绍(来源于Readme)

MLN是一个移动跨平台开发框架,让开发者用一套代码构建Android、iOS应用。MLN设计思路贴近原生开发,客户端开发者的经验,能够迅速迁移到MLN上,轻易构建出跨平台移动应用。vue

移动跨平台开发中flutter、weex、react native,已经各自拥有大量粉丝。MLN为何忽然以黑马姿态闯入?react

  • 专为客户端开发者设计。git

  • 增长包体积小,1.2M程序员

  • 真正的原生性能。跨平台每每意味着性能受损,得益于lua虚拟机的高性能和MLN优化,咱们极大减小了中间介质影响,即便在低端安卓手机加载页面也极快。github

  • 支持热更新。npm

尝鲜

有看到陌陌团队的设计初衷:咱们最初开发Lua Native的目的,只是让程序员早下班半小时 weex

我我的很是喜欢这句话,身为程序员,我也想早点下班啊,可准时下班仿佛成为了一种奢望。网络

搭建环境

按照ReadMe的文章开始搭建环境,MLN开发环境搭建,官方的文档已经至关详细了,我也就再也不啰嗦了,亲自体验一下。本人也尝试过,在很短的时间内装上了这些开发环境,主要是安装IDEA开发工具和它上面的两个插件。框架

热重载

热重载: 修改代码,当即生效,免去编译等待阶段

经过使用下载下来的demo,而后进入到热重载页面,用USB或扫码的方式链接到手机,就能够进行热重载体验了,使用起来很方便,操做很容易懂!

打开自动同步的开关,更是方便,亲测可用。

专为客户端开发者设计

MLN专为客户端开发者设计,iOS、Android程序员很是容易上手。使用MLN不须要学习Node.js、npm、vue、ES6这些对客户端开发陌生的前端技术,也不强迫使用响应式框架。花几个小时了解下lua语言和文档就能轻松上手,客户端开发者的整个技术栈在这里都派得上用场。

关于这个,我在体验的时候确实感受上手比flutter要快,更不用说RN了,熟悉文档还挺快的。毕竟lua这个开发语言,自己就具备速度快、易上手的特色。页面布局使用熟悉的 FrameLayout、LinearLayout。感受对安卓开发者更友好,毕竟这些布局常常用到,不过对于iOS开发者这也不是什么难事。

各平台安装包大小和性能对比

原本本身想去尝试一番最热门的几个跨平台框架在安卓和苹果手机上的各个方面的对比,正好偶然看到有位大佬已经作了这个测试了,就没有再尝试一番了,用了两台测试机分增长包体积大小、页面加载速度、页面刷新帧率(fps)、内存占用四个方面进行了测试。

因而可知,在安卓平台上,相比Weex、Flutter、React Native,使用MLN开发的APP,安装包体积增量最小,fps和页面加载速度都更接近原生APP。

因而可知,在iOS平台上,相比Weex、Flutter、React Native,使用MLN开发的APP,安装到手机后包大小增量最小,页面加载速度和内存占用都更接近原生APP。

应用场景

  1. 支持开发完整的APP,能明显节省人力。

  2. 嵌入到已有开发工程里使用,能显著提高开发效率。

陌陌首页、直播帧、更多帧部份内容、附近群组、狼人圈等一系列功能都是用MLN开发的。MLN的稳定性和性能在一年多的时间里,经受住了陌陌过亿量级MAU的考验。

相对来讲,若是准备应用的话,可能仍是会考虑嵌入方式吧,某些页面若是能热更新仍是很是不错的,对项目颇有帮助。

关于热更新

因为它是用lua语言开发的,只要把lua文件打包到工程就行了,固然经过网络下载的方式能够替换这个lua文件作到热更新咯。

至于这个过审会不会被拒,陌陌是采用这种方式的,不过我暂时尚未提审尝试过。至于可以使用热更新多久,那就看苹果的审核规则咯。

缺点

分析了解了一大堆,感受各个方面都优秀的样子,但其实缺点仍是很是明显的。

  1. 暂时主要应用于陌陌,缺乏第三方验证。
  2. 后期的技术支持和扩展性未知。

总结

其实这些跨平台框架的诞生,都有着本身的技术背景。只有选对了场景才能发挥出他们真正的威力, 不过MLN仍是值得尝试一番的 !

参考连接

github.com/momotech/ML…

zhuanlan.zhihu.com/p/97925879

github.com/momotech/ML…

相关文章
相关标签/搜索