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 渲染相同点
React 渲染与 Flutter 渲染不同点
- 绘制树:ReactNative 基于 ReactShadow 的链式结构在内存中形成一个虚拟的 Dom 树,Flutter
是通过引擎实现不同图层的渲染方式。 - 机制不一样:ReactNative 最终被反射成原生控件,而 Flutter 是底层通过引擎直接渲染,不存在映射的说法。
Flutter 渲染
在 Flutter 界面渲染过程分为三个阶段:布局、绘制、合成,布局和绘制在 Flutter 框架中完成合成则交由引擎负责。
Flutter优势
Flutter 横空出世! 在 Flutter 的响应式框架中,控件树中的控件直接通过可移植的图形加速渲染引擎、⾼性能的本地 ARM 代码进⾏绘制,不再需要通过虚拟 DOM 或虚拟控件、真实 DOM 或平台控件这些中间对象来绘制。Flutter 响应式框架通过“⽆中间商赚差价”的⽅式直接利⽤硬件的所有性能,所以正如前⾯所说的,Flutter 应⽤的性能⽐原⽣ App 更加优秀。
个人见解
相对于几大跨平台框架,个人还是很看好 Flutter 的。毕竟是 Google 的亲儿子嘛,还是可以先入坑的,自己动手写一个 Flutter APP 出来。在不同设备上跑一下,自己体验一下。
关于flutter的问题,涉及到大量的概念和知识点,如果没有系统的学习,很容易会杂糅概念而辨识不清,在面试与实际工作中都会遇到困难。如果你从事Android开发,具备1年以上工作经验,希望深入浅出了解Android flutter、UI等技术要点,渴望实现技术和职业成长上的双重突破,那么以下福利就很适合你:
福利1 免费直播课程
《腾讯课堂Android高级开发工程师系列直播》
适听人群:Android初、中、高级开发工程师
3.20-3.23 连续7天每晚8点准时直播,持续进行
▼
3月20日:突破sharedprefrence性能,急速存储应用数据
3月21日:基于Android一个小时实现人脸追踪
3月22日:架构师教你选择一个适合自己的app的架构
3月23日:Hook源码实现阿里无闪烁换肤
3月24日:揭秘Android开发效率提升十倍的利器——gradle
3月25日:移动平台AI——身份证实别离线实现方案实战
3月26日:Android进阶必学-APT编译期注解处理技术
福利2 Android开发资料包
该资料包中主要包括「Java语言进阶与Android相关技术核」、「2)App开发框架知识体系(app亦对象)」、「360° Android app全方位性能调优」、「Android前沿技术」、「NDK 模块开发」等内容,全方位扩充你的知识体系。
想要参与Android进阶免费系列直播课
以及获取Android开发工程师资料包的同学,
点击加入:加入
免费课程,名额有限,先到先得~~