Каждое ли приложение Flutter содержит движок Flutter?
Я пытаюсь переварить следующую информацию с сайта Flutter.
Как Flutter запускает мой код на Android?
Код движка C и C ++ скомпилирован с помощью Android NDK. Код Dart (как SDK, так и ваш) заблаговременно (AOT) скомпилирован в собственные библиотеки, библиотеки ARM и x86. Эти библиотеки включены в «раннер» Android-проект, и все это встроено в APK. При запуске приложение загружает библиотеку Flutter. Любой рендеринг, ввод или обработка событий и т. Д. Делегируются скомпилированному Flutter и коду приложения. Это похоже на то, как работают многие игровые движки.
Публикуется ли каждое приложение Flutter (точнее, каждое приложение для Android, созданное с помощью Flutter) с прикрепленным движком Flutter?
Ответы
Да, он есть в каждом приложении. Совместное использование кода между приложениями на Android / iOS отсутствует. Также каждое приложение может иметь другую версию движка (в зависимости от того, когда оно было скомпилировано).
Обратите внимание, что с выходом Flutter 1.0 накладные расходы (на Android) составляют менее 5M, что неплохо. Я считаю, что накладные расходы аналогичны на iOS.
libflutter.so на моем эмуляторе составляет 27,1 МБ для каждого из полнофункциональных / производственных приложений и приложений hello world.