Google 以 Flutter 作为原生突破口,移动端即将统一了
Android 的前生今世
Android 系统
Android系统作为全球第一大系统,基于 Java 开发的移动端有着诸多的性能优势。 2018年前 H5 的性能瓶颈和 RN 的停更 导致业界对跨平台开发失去信心。 直到2018年10月Google推出首个 Flutter 跨平台解决方案,打破整个移动开发的方向。
为什么 Flutter 成为 Android 方向标
- 跨平台性:Flutter基于图像绘制引擎进行渲染,在不同平台下绘制效果是绝对一致的,能做到真正的跨平台,一处写处处运行
- 性能优异性:不同于H5通过DOM渲染 和RN映射组件,Flutter直接基于native进行绘制。性能上完全超过原生
- 热重载性: Android原生开发 会遇到 编译-打包-安装 三部曲。开发效率迟迟得不到提升。热重载技术在Flutter内完美体现
Flutter 详细介绍
- Dart 语法编译:Dart 是一种强类型、跨平台的客户端开发语言。具有专门为客户端优化、高生产力、快速高效、可移植易学的风格。Dart主要由Google负责开发和维护
- Flutter 插件:Flutter使用的Dart语言无法直接调用Android系统提供的Java接口,这时就需要使用插件来实现中转。Flutter官方提供了丰富的原生接口封装
Flutter 系统结构
Skia 图像处理引擎
- 2005年Skia图像处理引擎成立,用来展示Chrome 火狐 和其他Google自家的产品使用。
- 2007年 第一个Android系统问世,于是Google开发者将Skia移植到Android平台。
- Skia作为一个2D的图形系统,包括绘图,渲染,显示图片都是用Skia完成。
原生开发会接触 SKia 吗?
Skia 引擎详解
- 疑问: 是真的吗?我只接触过 Bitmap,原来 Bitmap 下面还有很多奥秘
Skia 引擎与 Flutter 有什么关系勒?
- 除了通过xml方式定义布局 或者继承View 显示在Android屏幕外 还有没有 方法呢?
为什么 Flutter 会实现三大特性
跨平台
性能优异
渲染流程
React 渲染与 Flutter 渲染相同点
Flutter 渲染
在 Flutter 界面渲染过程分为三个阶段:布局、绘制、合成,布局和绘制在 Flutter 框架中完成合成则交由引擎负责。
之前,Google发布了Flutter前端框架的1.0版本。有同学要问,Flutter是什么东东?Flutter是Google基于Dart语言的一款前端框架,目前可以在Android和iOS平台进行编译运行,其运行效率可以媲美原生应用,这也是区别于JS类跨平台框架,如weex、Taro、React Native等的最大优势,同时,Dart语言最早也是Google发布出来想要改进JS的语言,所以Dart to JS是不成问题的。据悉,Flutter接下来也是要通过编译为JS打通Web端开发的。至此,Flutter不但可以跨主流移动操作系统iOS和Android,还可以通过浏览器和类似PWA的应用,打通主流桌面操作系统Windows、MacOS和Linux。
Google已经研发两年多的,最新打算用来取代Android的移动操作系统Fuchsia OS,根本前端就是用Flutter框架写的,如果Fuchsia系统发布,那Flutter和Dart一定是一跃成为首选前端编程语言和框架,只是苦了广大程序员,又有新东西要学了……
还有就是Google的Go语言增长势头迅猛,伴随其媲美C++的效率、极简的服务器并发编程、高效的服务器运行效率和现代化的编程特性和方式,国内外大部分公司都对其进行了应用,用来取代之前的一些接口和服务器应用。其中Docker就是最著名的例子。而Go语言早已突破1.x阶段,正稳步迈向2.0阶段。
我们可以清晰地看到Google的布局和野望,Dart主攻前端和移动端,Go主攻服务器端。前后端通吃,不同于微软的C#和苹果的OC和Swift,Google的布局似乎更加全面,应用和影响也更加广泛。Google统一前后端开发江湖的野望也会在一定程度上实现,至少,开源的语言和有实力的靠山公司,会比别家实现的好。
现在开始玩Flutter的好处呢, 我认为有如下几点:
1、如果我们以后想在Google的新系统上跑程序的话, 用Flutter来编写是一定没错的. 当然最近的报导显示, Fuschia原生支持ART, 因此Android程序应该也可以. 不过直接上Flutter我认为更好.
2、Flutter用Dart, 学习Flutter的同时会使我们掌握一门新的语言. 买一送一.
3、Flutter天生支持iOS风格的控件, 称为Cupertino, 这样我们可以一套设计, 一套code跑在两个系统上.
4、学习Flutter的过程会改变手机端app开发的思维. 毕竟这个亲只有一个activity. 全程跟个游戏引擎一样. 60帧每秒绘图.
5、Hot reload. 极大地加速了我们的开发效率. 试过了, 绝对会爱上它.
6、Flutter提供method channel给Android和iOS. 其实我们可以只用Flutter来开发UI. 其他底层逻辑可以封装Android和iOS分别的lib package. 然后直接Rx封装写回method channel. 也是一种新的开发模式.
7、性能更好, 兼容性更好, 开发起来更有乐趣, 这才是程序员的人生. 而Flutter都能满足.
如何学习Flutter:
https://blog.csdn.net/androidstarjack/article/details/87720925
从目前的情况和节奏来看,这次 Google 是认真的,承前启后的为它的下一代操作系统 Fuchsia 提前铺了路! 所以,我还是建议,平常你没事的时候可以开始学习了,等到真正成熟的时候,你就会一马平川的。不知道,你看好 Flutter 吗?欢迎你在文章底下留言交流看法。
阅读更多
一份完整的Android Studio搭建Flutter教程
如果对技术开发比较感兴趣,可以关注我的公众号:终端研发部,id:codeGoogler
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
9.9元学生云服务器学生专享及常见问题
现阿里云有一款针对学生云服务器的活动云翼计划 云翼计划是阿里云特别为在读大学生推出的云计算培养计划,旨在为大学生网络创业提供先进的技术支持,同时也帮助大学生学习、了解最新的云计算知识,创新开拓,放飞梦想! 注:阿里云的学生信息来自学信网,对于新入学的学生,请确保你的学生信息已在学信网录入,再进行学生验证,避免失败3次被锁学信网:http://www.chsi.com.cn/ 【参与步骤】 1)注册 2)完成支付宝个人实名认证 3)完成学生认证 4)在云翼计划页面完成购买 点此进入 常见问题 1、 学生认证怎么做?通过学生证吗,那是否只做形式上的审核,还是不涉及人工审核?在线上即可认证,提供身份证号,姓名,学校,入口见上。 2、升级配置时差价怎么核算?按9.9来算,还是按原价的折扣来算?升级时按1C1G原价和新配置之间的差价补价,升级(
- 下一篇
小白在阿里云云服务器上如何发布自己的网站(建站|详细)
昨天发的小白在阿里云云服务器上如何发布自己的网站(建站|详细),今更新一下 一、选购云服务器 到阿里云官网进行选购1.1 使用学生优惠购买使用学生优惠后为118元/年1.2 市场价购买如果是没有学生优惠的话,请用市场价购买 阿里云还有企业和个人的免费使用的云服务器 1.3 选择系统Windows:操作简单,功能实用,安全性较差。Linux:兼容性好、安全性很好、稳定,是目前大部分保密机构服务器操作系统都是它。(推荐,本文作者使用Linux,后文是Linux系统的建站教程)NetWare:批处理功能优秀,但目前市场占有率很少。Unix:支持大型文件系统与数据库,对于系统应用软件支持较完善。其他操作系统就不介绍了,想了解更多请搜索常见的操作系统及其优缺点比较。我自己选择是linux的Ubuntu。 二、购买域名 2.1 注册域名就在阿里云的万网系
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装