Flutter学习笔记

Tags
#Flutter

1.移动开发中三种跨平台技术

notion image
Flutter使用Skia作为其2D渲染引擎,Android系统内置Skia,iOS系统未内置Skia

2.编译机制

Flutter使用Dart做为开发语言
Java:我们开发的 Java 的源代码,首先通过 Javac 编译成为字节码(bytecode),然后,在运行时,通过 Java 虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。但是常见的 JVM,比如我们大多数情况使用的 Oracle JDK 提供的 Hotspot JVM,都提供了 JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。
JIT与AOT:(JIT,即Just-in-time,动态(即时)编译,边运行边编译;AOT,Ahead Of Time,指运行前编译)除了我们日常最常见的 Java 使用模式,其实还有一种新的编译方式,即所谓的 AOT,直接将字节码编译成机器代码,这样就避免了 JIT 预热等各方面的开销,比如 Oracle JDK 9 就引入了实验性的 AOT 特性,并且增加了新的 jaotc 工具。
Android:在Android N(7.0)中引入了一种新的编译模式,同时使用JIT和AOT。
Dart:支持JIT和AOT,建议开发时使用JIT(安装快,运行慢),发布时使用AOT(安装慢,运行快)
Dart是类型安全的语言,支持静态类型检测

3.Flutter架构图

notion image
Rendering:构建UI树 Widgets层:基础组件库

4. 项目构建的依赖关系

notion image
Flutter的包管理普遍 pub.dartlang.org/,类似maven

5. 关于abi和cpu之间的关系

notion image

6. Android旧项目集成Flutter

  1. 新建flutter_module项目
  1. run一下,生成apk和aar包
  1. 解压apk包,复制assets/flutter_shared/icudtl.dat到旧项目
  1. 在旧项目依赖aar包即可

7. Flutter命令

flutter doctor flutter run flutter build apk flutter packages get dart --version

8. 遇到问题

  1. flutter build apk

相关资源

  1. 《Flutter实战》

© fishyer 2022