在我搜索Dart AOT如何工作时,除了this video之外,我找不到很多资源。我想知道当存在需要运行代码的不同硬件时,代码可以编译为本机机器代码,例如Android或iOS。
根据我的理解,只有Flutter中生成的应用程序的描述。然后将该描述(用Dart编写)编译为本机机器码,但是如何?用Swift编写的程序与用Kotlin编写的程序不同。
答案 0 :(得分:6)
编译器从Dart源代码创建二进制代码。 对于移动应用程序,源代码针对多个处理器ARM,ARM64,x64和两个平台(Android和iOS)进行编译。这意味着每个支持的处理器和平台组合都有多个生成的二进制文件。
根据我的理解,只有Flutter中生成的应用程序的描述。
不确定你的意思。对于每种编程语言,源代码和编译到目标平台的概念基本相同。 JIT(Just in Time)在运行时即时编译,而AOT(Ahead of Time)在部署和启动应用程序之前编译。
用Swift编写的程序与用Kotlin编写的程序不同。
也不确定你的意思。 Swift可以编译为本机代码和Java字节码。 Swift是AoT而Java是JiT。最终结果始终是目标平台和CPU的二进制代码。