Каждое ли приложение Flutter содержит движок Flutter?

Sep 15 2020

Я пытаюсь переварить следующую информацию с сайта Flutter.

Как Flutter запускает мой код на Android?

Код движка C и C ++ скомпилирован с помощью Android NDK. Код Dart (как SDK, так и ваш) заблаговременно (AOT) скомпилирован в собственные библиотеки, библиотеки ARM и x86. Эти библиотеки включены в «раннер» Android-проект, и все это встроено в APK. При запуске приложение загружает библиотеку Flutter. Любой рендеринг, ввод или обработка событий и т. Д. Делегируются скомпилированному Flutter и коду приложения. Это похоже на то, как работают многие игровые движки.

Публикуется ли каждое приложение Flutter (точнее, каждое приложение для Android, созданное с помощью Flutter) с прикрепленным движком Flutter?

Ответы

2 DidierProphete Sep 15 2020 at 22:03

Да, он есть в каждом приложении. Совместное использование кода между приложениями на Android / iOS отсутствует. Также каждое приложение может иметь другую версию движка (в зависимости от того, когда оно было скомпилировано).

Обратите внимание, что с выходом Flutter 1.0 накладные расходы (на Android) составляют менее 5M, что неплохо. Я считаю, что накладные расходы аналогичны на iOS.

1 JonnyH Sep 15 2020 at 22:05

libflutter.so на моем эмуляторе составляет 27,1 МБ для каждого из полнофункциональных / производственных приложений и приложений hello world.