赞
踩
Flutter 作为Google出品的一个新兴的跨平台移动客户端UI开发框架,正在被越来越多的开发者和组织使用,包括阿里的咸鱼、腾讯的微信等。
今天,我将献上一份 《全面 & 详细的Flutter学习指南》,希望你们会喜欢。
特别注意:
下面,简单介绍一下Flutter的2D渲染引擎:Skia
特别注意:
Flutter框架主要分为三层
开发时,主要基于Framework层;运行时,则是运行在 Engine上
Engine是Flutter的独立虚拟机,由它适配 & 提供跨平台支持;因为其存在,Flutter不使用移动端系统的原生控件, 而是使用自己 Engine 来绘制 Widget (Flutter的显示单元); Dart 代码是通过 AOT 编译为平台的原生代码,所以 Flutter可直接与平台通信,不需要JS引擎的桥接。
同时 Flutter 唯一要求系统提供的是 canvas,以实现UI的绘制。
编译时,具体如下:
Flutter理念:“一切皆为Widget”,Widget是Flutter应用程序用户界面的基本构建块,具备以下特点:
Flutter通过使用上述所述的自身渲染引擎、原理框架 & Widget运行,使用一套代码即可同时构建iOS和Android应用,从而实现跨平台的特性,最终提高开发的效率
简介
由Facebook出品,采用了JavaScript语言、JSCore引擎和通过原生渲染的跨平台框架
实现原理
通过编写JavaScript语言代码,通过 React Native 的中间层来调用 Native端的组件,最终实现相应的功能。JS端中所写控件的作用类似 Map中的key 值,对应着Native端的对应控件(如 Android 中 标签对应 ViewGroup 控件)。JS端会通过多个key 组合成Dom,最后交由Native端进行解析,最终渲染出Native端的控件。
实现框架
React Native的架构主要由三层实现。其中最重要的是由C++ 实现的中间适配层,此处最主要封装了JavaScriptCore用于执行JS的解析,最终实现了JS端与原生端的双向通信交互。而React Native运行在JavaScriptCore中。(在iOS上直接使用内置的javascriptcore、在Android则使用webkit.org官方开源的jsc.so)
简介
由Alibaba出品,采用了JavaScript语言、JS V8引擎和通过原生渲染的跨平台框架
实现原理
与React-Native类似,JS端会通过多个key组合成Dom,最后交由Native端进行解析,最终渲染出Native端的控件,但区别在于:Weex是可以跨三端的 = Android、iOS、Web,其原因在于在开发过程中,代码模式、编译过程、模板组件、数据绑定、生命周期等上层语法是一致,不同的是Web端和Native端对Virtual DOM 执行的解析方法有所区别。
实现框架
weex的架构主要分为三部分,具体如下:
注:对于性能的对比,从理论上来说Flutter应该是最接近原生性能 & 最好的,但就目前实际应用&体验中并没具备很明显的差异化,后续需进行进一步的验证。
本文全面介绍了Flutter入门学习知识,接下来推出的文章,我将继续讲解Flutter的相关知识,包括使用语法、实战等,感兴趣的读者可以继续关注Carson带你学Android系列文章
Carson带你学Android:学习方法
Carson带你学Android:四大组件
Carson带你学Android:自定义View
Carson带你学Android:异步-多线程
Carson带你学Android:性能优化
Carson带你学Android:动画
博客链接:https://carsonho.blog.csdn.net/
我想邀请你和我一起学Android
我想邀请您和我一起写Android(福利回赠)
我想给你们介绍一个与众不同的Android微信公众号(福利回赠)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。