当前位置: 首页 > 知识库问答 >
问题:

Flutter如何为本地应用程序使用自己的DartVM

巫马庆
2023-03-14

我听说Dart使用自己的DartVM。因此,Flatter可以在开发应用程序时使用JIT(用于热重新加载)和AOT将后者构建为“原生”应用程序(.apk/.ipa)。

根据两个平台(Android/iOS)的文档:

提前(AOT)编译到本机ARM库中

但是,如果应用已经通过Dalvik/ART运行,那么Flatter如何在Android上使用自己的DartVM呢?虚拟机是否已内置到我们的系统中。apk,这样它就可以传送到真正的Android设备上?

如果DartVM不用于最终构建,那么GC的东西呢?Flatter倾向于创造许多短命的物体,这对DartVM的世代GC来说很好,但对艺术的一代来说却不太好。

共有1个答案

富勇军
2023-03-14

颤振引擎在两种不同的模式下使用Dart VM:

  • 在开发时以调试模式运行,flatter run命令监视主机文件系统中Dart源的更改,当它检测到此类更改时,会将Dart源快速编译为内核(中间)格式。然后通过热重新加载将其同步到设备上运行的引擎,并在JIT模式(Android)或解释模式(iOS)下执行
  • 在概要文件或发布模式下运行时,Dart源代码首先编译为内核中间形式,然后通过gen_snapshot运行,它会发出AOT ARM机器代码,然后链接到最终的应用程序中。你可以在我们的维基上找到AOT模式操作的详细解释

请注意,Android有一套薄薄的平台绑定,用Java编写,通过JNI与引擎接口,但是Flutter引擎的核心是用C编写的,用NDK构建,因为这些比特不依赖于Dalvik/艺术。

 类似资料:
  • 我一直在用Xcode为我的iPhone开发一些应用程序,但最近我得到了华为P30 Pro,想开始为它制作自己的应用程序。我试过Android Studio for Mac,但它无法检测到我的手机,而且谷歌没有显示任何为华为开发应用程序的结果。 这是可能的,还是到目前为止我无能为力? 我已在手机上启用USB调试并运行“广告设备”,它显示我的设备已连接,但仍在Android Studio中注意到。

  • 问题内容: 部署Node.js的最佳方法是什么? 我有一个Dreamhost VPS(这就是他们所说的VM),并且我已经能够安装Node.js并设置代理。只要我保持打开节点时启动的SSH连接就可以了。 问题答案: 2016年答案 :几乎每个Linux发行版都随附systemd,这意味着 永久,monit,PM2等都不再需要-您的OS已经可以处理这些任务 。 制作一个文件(用您的应用名称替换“ my

  • 我正在为我的flutter应用程序使用JWT进行身份验证。我可以成功地登录和注销,但问题是令牌何时过期。我是否应该将用户的用户名/密码存储在安全存储中,然后获取新的令牌?

  • 下面是我的app.js: 任何帮助都将不胜感激。

  • 有趣的是,当我从头创建一个新应用程序时,pubspec.lock没有任何关于Flutter版本的信息。这个部分现在只包含以下内容:。将来,我怎么知道这个应用程序运行的是哪个版本? 我尝试在我的应用程序中运行“Flutter upgrade”,但那是为了升级SDK,而不是应用程序的Flutter版本。那么我该如何升级我的应用程序来使用最新的Flutter版本呢?还是总是使用最新版本的SDK构建?我不