dart - Dart AOT 是如何工作的?

标签 dart flutter aot

在搜索 Dart AOT 的工作原理时,除了 this video 之外,我没有找到很多资源。 .我想知道当代码需要在不同的硬件上运行时,如何将代码编译为原生机器代码,例如 Android 或 iOS。

据我了解,只有在 Flutter 中制作的应用程序的描述。然后将该描述(用 Dart 编写)编译为 native 机器代码,但如何?用 Swift 编写的程序与用 Kotlin 编写的程序是不同的。

最佳答案

编译器从 Dart 源代码创建二进制代码。 对于移动应用程序,源代码针对多处理器 ARM、ARM64、x64 以及两个平台 - Android 和 iOS 进行编译。这意味着每个支持的处理器和平台组合都有多个生成的二进制文件。

From what I understand, there are only descriptions of apps produced in Flutter.

不确定你的意思。对于每种编程语言,源代码和编译到目标平台的概念基本相同。 JIT(即时)在运行时即时编译,而 AOT(提前)在应用程序部署和启动之前进行编译。

A program written in Swift is different from a program written in Kotlin.

也不确定你的意思。 Swift 可以编译为 native 代码和 Java 到 Java 字节码。 Swift 是 AoT,而 Java 是 JiT。最终结果始终是目标平台和 CPU 的二进制代码。

关于dart - Dart AOT 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50012596/

相关文章:

flutter - 如何使用 bloc in flutter 将数据传递到另一个屏幕

webpack - Angular 5 和 Webpack——我真的需要它吗?

javascript - AngularJS 2 - 使用哪种语言? ( typescript ,Javascript, Dart )

javascript - Dart `startsWith` 是否比 JavaScript 中的相同方法慢?

当键盘出现时,AlertDialog 上的 Flutter RenderFlex 溢出错误

dictionary - Dart 在 Python 中有类似 `defaultdict` 的东西吗?

c++ - 如何 AOT(提前)编译 C++ 程序

java - 如何将类型化集合从 clojure 传递到 java?

Dart 版本 2.0.0-dev.64.1 不兼容快照

dart - 如何将函数存储为类成员变量