Hello Flutter

Flutter 是 Google 在 2015 年发布的一款跨平台 UI 开发工具包,支持 Android 及 iOS 平台,同样也是 Google Fuchsia 的主力开发工具。

作为 Android 开发有学习 Flutter 的必要吗?个人觉得很有必要,首先这是 Google 在主推的一个项目,并且国内阿里腾讯等等大厂都已经有使用 Flutter 开发的项目了,有他们背书,不用怕有什么填不满的坑。另外,其实作为一个 Android 开发,很容易觉得能力无法更进一步,基本上每个程序员都有这样的经历,觉得自己的能力已经能胜任所有的工作,该会的也都会了,没有办法更进一步突破自己的天花板,换个角度想,或者通过另一个层次来看现在的自己,Android 开发的未来到底在哪,未来的移动端开发到底应该是什么样,原生开发会被抛弃吗?
跨平台一直以来都是大家很关注的话题,很多公司都有一些尝试,而对于 Flutter 来说或许能一统大前端的江湖,如果能做到在不牺牲性能的的情况下做到跨平台,那有谁能拒绝他呢。
混合开发肯定还会继续下去,但原生负责的业务可能会降低,核心功能用原生,页面以及边缘业务使用 Flutter 开发快速迭代,这应该是理想的开发模式。

什么是 Flutter

Flutter 是一个移动端跨平台开发工具包,可以实现一次编写、到处运行,并且性能可以媲美原生。
关于移动端的跨平台开发已经有过很多次尝试,不论是基于 WebView 的 Cordova、VUE,还是可以渲染成原生控件的 React Native 、Weex,性能上总是差强人意,体验也比较差。
而 Flutter 就比较厉害了,另辟蹊径,直接重新写了一套 UI 组件,然后使用 2D 渲染引擎 Skia 将其渲染出来,性能上自然不会太差。所以我们在开发时使用 Flutter 内置的 UI 组件,完成后 Skia 会直接调用系统的图形接口绘制页面,并且 Flutter 使用支持 AOT 的 Dart 语言,性能也要比 JavaScript 高。
Flutter 支持使用 IDEA、AndroidStudio、VS code 开发,只要安装相应的插件即可,另外 Flutter 再调试模式下使用 JIT 方式运行,此时可以使用引以为傲的 Hot Reload 功能,可以实现代码更改后立马看到 APP 上的效果。

Dart

Dart 是由 Google 主导开发,在 2011 年发布的用于 Web 开发的编程语言。
Dart 语法特质类似 C 语言,同样是面向对象的编程语言,具备三种运行方式:

  • 编译成 JavaScript 代码,运行在浏览器中
  • 运行在 DartVM 虚拟机中(JIT,Flutter 调试模式下使用这种方式运行)
  • 编译成机器码直接运行(AOT)

对于有 Java 基础的开发者来说,学习 Dart 成本并不高,简单易上手,所以如果感兴趣的话就赶紧开始吧。

Flutter 的组织形式

上面只是大概的介绍了 Flutter 的一些基本概念,那么 Flutter 到底是如何运行在设备上的呢?以什么样的方式与原有的项目进行结合呢?
我们可以先创建一个简单的 Flutter 项目,然后编译运行,看看这中间到底经历了哪些过程,最终生成的 apk 到底长什么样子。

Flutter apk

我们先创建一个 flutter 项目,然后打包一个 APK 看看到底长什么样子,flutter 项目的 debug 模式和 release 模式下生成的 apk 区别很大,这里先看 release。
下图为一个 flutter 项目 release 模式下的 apk 结构&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值