Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问一下有大体原理的文档么? #72

Open
cikelengfeng opened this issue Dec 18, 2019 · 16 comments
Open

请问一下有大体原理的文档么? #72

cikelengfeng opened this issue Dec 18, 2019 · 16 comments
Assignees
Labels
question Further information is requested

Comments

@cikelengfeng
Copy link

我自己看了一下代码,感觉和RN Weex 原理类似?渲染还是交给原生做?

@fangyuxiong
Copy link
Contributor

我自己看了一下代码,感觉和RN Weex 原理类似?渲染还是交给原生做?

是的,渲染交给原生做。后续会给出架构图。

@yp-mon
Copy link
Contributor

yp-mon commented Dec 18, 2019

大部分组件都跟RN、Weex类似桥接原生。个别Android、iOS两端差异大的组件我们从更底层接口下手用Lua重新封装。一些Lua替换原生的工作还在进行中,比如EditTextView我们考虑从canvas层用Lua重新实现。

@cikelengfeng
Copy link
Author

感谢解答~

@gavinliu
Copy link

gavinliu commented Dec 20, 2019

酷安上很多用高中生,初中生在课堂上用手机使用 lua 写出来的 Android app。

@doubleYang1020
Copy link

和LuaViewSDK 有什么区别 早在几年前阿里就推出这样的方案了 https://github.com/alibaba/LuaViewSDK/

@Tamerlx Tamerlx closed this as completed Dec 30, 2019
@Tamerlx Tamerlx reopened this Dec 30, 2019
@Tamerlx
Copy link
Contributor

Tamerlx commented Dec 30, 2019

和LuaViewSDK 有什么区别 早在几年前阿里就推出这样的方案了 https://github.com/alibaba/LuaViewSDK/

Lua 做跨平台是一个不错的方案,我们前期也了解过LuaView的方案。但是LuaView应该仅处于Demo阶段,MLN相对更加成熟。

  1. 更丰富的控件&更贴近原生的设计
  2. 更简便高效的Bridge扩展方式
  3. 更高效的开发工具支持
    ...
    MLN期待每一位开发者更深入了解与反馈。

@yp-mon
Copy link
Contributor

yp-mon commented Dec 30, 2019

确实LuaView看起来只是做了个简单尝试,UI功能都不完整

@xuwhale6 xuwhale6 added the question Further information is requested label Dec 30, 2019
@yanweimin7
Copy link

比起RN有什么优势吗?

@pantaopt
Copy link

比起RN有什么优势吗?

你得比较 lua js的特性吧
原理上 除了flutter以外 rn weex mln hippy 原理都是一样的

@AAChartModel
Copy link

哈哈,不错不错,准备开启新项目 AAChartKit-MLN

@yp-mon
Copy link
Contributor

yp-mon commented Jan 19, 2020

哈哈,不错不错,准备开启新项目 AAChartKit-MLN

如果MLN现有接口支持不全可以给我们提issue,可以加下这个群,方便沟通。
IMG_1543

@tripleCC
Copy link

tripleCC commented Feb 6, 2020

和LuaViewSDK 有什么区别 早在几年前阿里就推出这样的方案了 https://github.com/alibaba/LuaViewSDK/

Lua 做跨平台是一个不错的方案,我们前期也了解过LuaView的方案。但是LuaView应该仅处于Demo阶段,MLN相对更加成熟。

  1. 更丰富的控件&更贴近原生的设计
  2. 更简便高效的Bridge扩展方式
  3. 更高效的开发工具支持
    ...
    MLN期待每一位开发者更深入了解与反馈。

很好的回答 👍

这里额外请教一个问题,为什么使用 lua 来做,而不用现在主流的 js ,从预置运行环境上看, iOS 设备本身就提供了 js 运行环境 (JaveScriptCore.framework),而 lua 还需要额外嵌入 lua vm 。相比 js ,采用 lua 做为动态化脚本语言有什么明显的优势么?

关于native 和 脚本虚拟机交互性能那块,有实际量化过使用lua 和 js 时的区别有多少么 (比如 JSPatch,lua 是属于执行效率高的脚本语言没错,不过感觉这里比较关心和 native 端的频繁交互,比如数据的转换等)? 这一块感觉你们动手前应该有经过详细的调研,想听听你们的理解。

最后感谢一波开源

@yp-mon
Copy link
Contributor

yp-mon commented Feb 7, 2020

首先lua真的很快,你可以试着比较下lua桥接和JS桥接跟原生的通信速度,lua明显快了一个数量级。桥接速度快在列表滑动和手势触摸等方面有很大的性能优势。原生跟lua交换数据非常快,明显优于JS。

另外lua可以方便运行在主线程里且不影响性能,这样我们在内存管理上能方便的跟原生做好同步,在UI框架设计上也更便利。

@tripleCC
Copy link

tripleCC commented Feb 7, 2020

首先lua真的很快,你可以试着比较下lua桥接和JS桥接跟原生的通信速度,lua明显快了一个数量级。桥接速度快在列表滑动和手势触摸等方面有很大的性能优势。原生跟lua交换数据非常快,明显优于JS。

另外lua可以方便运行在主线程里且不影响性能,这样我们在内存管理上能方便的跟原生做好同步,在UI框架设计上也更便利。

多谢回答,还有一个问题请教下,luaJIT 的解释器模式比原生的 lua 解释器快挺多,直接用 lua 原生解释器是出于什么考虑么

@yp-mon
Copy link
Contributor

yp-mon commented Feb 12, 2020

首先lua真的很快,你可以试着比较下lua桥接和JS桥接跟原生的通信速度,lua明显快了一个数量级。桥接速度快在列表滑动和手势触摸等方面有很大的性能优势。原生跟lua交换数据非常快,明显优于JS。
另外lua可以方便运行在主线程里且不影响性能,这样我们在内存管理上能方便的跟原生做好同步,在UI框架设计上也更便利。

多谢回答,还有一个问题请教下,luaJIT 的解释器模式比原生的 lua 解释器快挺多,直接用 lua 原生解释器是出于什么考虑么

我们测性能发现页面加载和滑动时,lua自身耗时占比很少,换成luaJIT收益非常低。未来我们把更多底层代码替换成lua后可能会换。

@JoeLee09
Copy link

JoeLee09 commented Jul 1, 2021

哈哈,不错不错,准备开启新项目 AAChartKit-MLN

如果MLN现有接口支持不全可以给我们提issue,可以加下这个群,方便沟通。
IMG_1543
麻烦再发一下技术群二维码🤝

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests