android 打包h5源码 h5打包成app原理_android 打包h5源码


NativeScript我用过,其他听过但是没用过,但我觉的原理应该差不多,简单给你说说ns的原理。如果你使用过ns的话,你会发现其实和开发Angularwebapp基本没什么区别,无非是很多空间组件变成了ns提供的那些。在Angular中有一个叫做platform的概念,大体的架构思想是这样的,就是你在写Component的时候,这实际是一个高度抽象的概念,它已与组件所具体渲染的环境(platform)解耦,同一个Component在不同的platform下的渲染逻辑和编译逻辑不相同,但表现形式相同,举例来说:通常开发web程序,使用的都是platform-browser,它会将组件编译为浏览器识别的css、js、html等文件github上有一些项目提供了platform-canvas,它会将组件编译为在某个canvas元素上渲染的脚本之前我看过一篇文章,文章中实现了platform-momery,大体的功能就是将Angular组件编译为了只在内存中渲染并运行的platform因此,对于ns来说,它就是要实现这么一个platform,算是一座桥,入口端是Angular组件,出口端是不同类型的移动端代码,要了解中间这种转换和编译的过程,需要学习一些编译原理的知识,最起码要明白AST这个概念,这个概念其实在各种js的编译工具中,经常被提起,比如babel、webpack等等。同理的,对于react-native、weex等,肯定内部原理都是这样的,就是要实现这么一座桥,将react或者vue与移动端的代码连接起来。当然,这只是其中的一种实现方案,还有类似使用webview来实现的,这个我接触的不多,就不说了,好像ionic就是这种套路。总之最终的结果就是,只通过js写逻辑,对于渲染逻辑的话,交给库来实现。我觉的要想查阅相关资料,直接学习其中的某个库就好了,或者看看编译原理。如有错误,还望指正。