Android:手把手带你入门跨平台UI开发框架Flutter,渣本Android开发小伙如何一步步成为架构师

这篇具有很好参考价值的文章主要介绍了Android:手把手带你入门跨平台UI开发框架Flutter,渣本Android开发小伙如何一步步成为架构师。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3.1 框架结构

Flutter框架主要分为两层:FrameWork层、Engine层,如下图所示:

flutter 框架开发android,程序员学习,android,ui,flutter

说明:开发时,主要基于Framework层;运行时,则是运行在 Engine上。每层的具体介绍如下:

flutter 框架开发android,程序员学习,android,ui,flutter

3.2 原理概述

开发时,主要基于Framework层;运行时,则是运行在 Engine上

Engine是Flutter的独立虚拟机,由它适配 & 提供跨平台支持;因为其存在,Flutter不使用移动端系统的原生控件, 而是使用自己 Engine 来绘制 Widget (Flutter的显示单元);Dart 代码是通过 AOT 编译为平台的原生代码,所以 Flutter可直接与平台通信,不需要JS引擎的桥接。

同时 Flutter 唯一要求系统提供的是 canvas,以实现UI的绘制。

flutter 框架开发android,程序员学习,android,ui,flutter

编译时,具体如下:

flutter 框架开发android,程序员学习,android,ui,flutter

3.3 关于widget

Flutter理念:“一切皆为Widget”,Widget是Flutter应用程序用户界面的基本构建块,具备以下特点:

  • 属于具有一致性的统一对象模型,与其他将视图、控制器、布局和其他属性分离的框架不同。更新widget时更加高效

  • 不可变的,仅支持一帧,且每一帧上不会直接更新,要更新而必须使用Widget的状态。无状态和有状态Widget 的核心特性相同,每一帧都会重新构建;

  • 有一个State对象,用于跨帧存储状态数据 & 恢复

4. 特点

Flutter具备跨平台、开发效率高 & 高性能的特点

具体说明如下:

4.1 跨平台 & 开发效率高

Flutter通过使用上述所述的自身渲染引擎、原理框架 & Widget运行,使用一套代码即可同时构建iOS和Android应用,从而实现跨平台的特性,最终提高开发的效率

4.2 高性能
  • 原因1:通过其自带的高性能渲染引擎进行渲染

  • 原因2:Dart语言本身的语言特性

  • 原因3:编译过程特点,具体如下:

flutter 框架开发android,程序员学习,android,ui,flutter

5. 对比

跨平台开发的本质是为了:增加代码复用、减少不同平台差异适配的工作量 & 提高开发效率。

目前主流的跨平台开发框架有:React-Native、Weex和本文提及的Flutter。下面,我先简单介绍React-Native和Weex,再进行三者的对比。

flutter 框架开发android,程序员学习,android,ui,flutter

5.1 React-Native

简介 由Facebook出品,采用了JavaScript语言、JSCore引擎和通过原生渲染的跨平台框架

实现原理

通过编写JavaScript语言代码,通过 React Native 的中间层来调用 Native端的组件,最终实现相应的功能。JS端中所写控件的作用类似 Map中的key 值,对应着Native端的对应控件(如 Android 中 标签对应 ViewGroup 控件)。JS端会通过多个key 组合成Dom,最后交由Native端进行解析,最终渲染出Native端的控件。

flutter 框架开发android,程序员学习,android,ui,flutter

实现框架

React Native的架构主要由三层实现。其中最重要的是由C++ 实现的中间适配层,此处最主要封装了JavaScriptCore用于执行JS的解析,最终实现了JS端与原生端的双向通信交互。而React Native运行在JavaScriptCore中。(在iOS上直接使用内置的javascriptcore、在Android则使用webkit.org官方开源的jsc.so)

flutter 框架开发android,程序员学习,android,ui,flutter

5.2 Weex

简介 由Alibaba出品,采用了JavaScript语言、JS V8引擎和通过原生渲染的跨平台框架

实现原理

与React-Native类似,JS端会通过多个key组合成Dom,最后交由Native端进行解析,最终渲染出Native端的控件,但区别在于:Weex是可以跨三端的 = Android、iOS、Web,其原因在于在开发过程中,代码模式、编译过程、模板组件、数据绑定、生命周期等上层语法是一致,不同的是Web端和Native端对Virtual DOM 执行的解析方法有所区别。

flutter 框架开发android,程序员学习,android,ui,flutter

实现框架

weex的架构主要分为三部分,具体如下:

flutter 框架开发android,程序员学习,android,ui,flutter

5.3 三者对比

flutter 框架开发android,程序员学习,android,ui,flutter

注:对于性能的对比,从理论上来说Flutter应该是最接近原生性能 & 最好的,但就目前实际应用&体验中并没具备很明显的差异化,后续需进行进一步的验证。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
flutter 框架开发android,程序员学习,android,ui,flutter
flutter 框架开发android,程序员学习,android,ui,flutter
flutter 框架开发android,程序员学习,android,ui,flutter
flutter 框架开发android,程序员学习,android,ui,flutter

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
flutter 框架开发android,程序员学习,android,ui,flutter

922583062)]
[外链图片转存中…(img-967MhbvP-1710922583063)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-xIBr8xZJ-1710922583063)]文章来源地址https://www.toymoban.com/news/detail-853190.html

到了这里,关于Android:手把手带你入门跨平台UI开发框架Flutter,渣本Android开发小伙如何一步步成为架构师的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包