【问题标题】:Does every flutter app contain Flutter engine?每个 Flutter 应用都包含 Flutter 引擎吗?
【发布时间】:2021-01-02 08:17:36
【问题描述】:

我正在尝试从 Flutter 网站消化以下信息。

Flutter 如何在 Android 上运行我的代码?

引擎的 C 和 C++ 代码使用 Android 的 NDK 编译。飞镖 代码(SDK 和您的)都提前 (AOT) 编译成 本机、ARM 和 x86 库。这些库包含在 “runner” Android 项目,整个东西都内置在一个 APK 中。 启动时,应用程序会加载 Flutter 库。任何渲染, 输入,或事件处理等,被委托给编译的 Flutter 和应用程序代码。这类似于许多游戏引擎的方式 工作。

是否每个 Flutter 应用(更准确地说是每个使用 Flutter 创建的 Android 应用)发布时都附加了 Flutter 引擎?

【问题讨论】:

  • 检查一下包含 apk 的内容...我很确定每个 apk 都包含 libflutter.so
  • .so 是库 ...libflutter.so 是颤振引擎本身
  • 好吧,“很多空间”是相对的……但是,是的,它会占用一些空间,但是……一个 ABI 最多 10MB

标签: android flutter dart


【解决方案1】:

是的,它包含在每个应用程序中。 Android/iOS 上的应用程序之间没有代码共享。此外,每个应用程序可能有不同版本的引擎(取决于编译时间)

请注意,随着即将推出的 Flutter 1.0,开销(在 Android 上)小于 5M,这还不错。我相信 iOS 上的开销是相似的。

【讨论】:

  • 非常好的信息。非常感谢!
【解决方案2】:

libflutter.so 在我的模拟器上是 27.1MB,用于完整/生产应用程序和 hello world 应用程序。

【讨论】:

  • 这是处理器架构没有拆分的情况
  • 确保在发布模式下签入。它应该小很多(我相信 27.1mb 处于调试模式)
猜你喜欢
  • 2021-01-25
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
  • 2023-02-14
相关资源
最近更新 更多