我最近使用 Google 的 Flutter 框架开发了一个 Android 应用程序。在深入研究应用程序编译时发生的情况时,我看到颤振构建了四个数据块(非 ELF 二进制文件)。Flutter 引擎如何在运行时加载该代码(如果我没记错的话,我开发的源代码)?
我搜索了 Flutter 引擎文档以获取更多信息,但我唯一能找到的是,引擎“映射”了这些 blob(称为快照);资料来源:https ://github.com/flutter/flutter/wiki/Flutter-engine-operation-in-AOT-Mode )这种“映射”实际上是如何工作的?我知道,flutter 引擎可以通过 JNI 与底层的 android runner 应用程序通信,但是它如何加载我开发的 Dart 代码?我试图阅读颤振引擎源代码,但它是用 C++ 编写的,我对此相当陌生。
因此,如果有人对 Android 的颤振应用程序的启动过程有更深入的了解,任何新的信息或建议将不胜感激,我似乎无法理解这些二进制数据文件的情况。