Enthält jede Flatter-App eine Flutter-Engine?
Ich versuche, die folgenden Informationen von der Flutter-Site zu verarbeiten.
Wie führt Flutter meinen Code auf Android aus?
Der C- und C ++ - Code der Engine wird mit dem NDK von Android kompiliert. Der Dart-Code (sowohl der SDK als auch der Ihre) wird vorzeitig (AOT) in native, ARM- und x86-Bibliotheken kompiliert. Diese Bibliotheken sind in einem "Runner" Android-Projekt enthalten, und das Ganze ist in eine APK integriert. Beim Start lädt die App die Flutter-Bibliothek. Jegliches Rendern, Eingeben oder Behandeln von Ereignissen usw. wird an den kompilierten Flutter- und App-Code delegiert. Dies ähnelt der Funktionsweise vieler Game-Engines.
Wird jede Flutter-App (genauer gesagt jede mit Flutter erstellte Android-App) mit angehängter Flutter-Engine veröffentlicht?
Antworten
Ja, es ist in jeder App enthalten. Es gibt keine Codefreigabe zwischen Apps unter Android / iOS. Außerdem kann jede App eine andere Version der Engine haben (je nachdem, wann sie kompiliert wurde).
Beachten Sie, dass mit dem kommenden Flutter 1.0 der Overhead (unter Android) weniger als 5 Millionen beträgt, was nicht schlecht ist. Ich glaube, der Overhead ist unter iOS ähnlich.
libflutter.so ist 27,1 MB auf meinem Emulator für jede Voll- / Produktions-App und eine Hallo-Welt-App.