2016-05-23 2 views
1

AFAIK Desktop-Anwendungen entwickelt mit jeder .NET-Sprache (C#, VB.NET, F #, etc.) keine .NET-Laufzeit und alle Anwendungen über das gleiche .NET-Framework.Mit Xamarin für Android ist Mono Runtime mehr als einmal installiert?

Für Android ist dies nicht wahr. Jede App enthält das Mono-Framework in der APK.

Also, Xamarin-generierte APKs sind RIESIG!

Wie Sie sehen können here die 6K HelloWord App wächst bis zu 15.8M mit dem gesamten Mono-Framework und Bibliotheken enthalten.

Auch nach dem Linker bleibt die 6K HelloWord App immer noch bei 2,9M (mehr als 480 mal so groß wie die HelloWorld App).

Unnötig mit Xamarin zu sagen, dass wir eine "Laufzeit-over-Laufzeit" -Umgebung dh Mono-over-Dalvik (oder Mono-over-ART wenn Sie möchten) verwenden

das Vereinfachen, was ich will wissen ist:

Da jedes APK das Mono-Framework enthält, wird das Mono-Framework mit jeder App installiert oder nur mit der ersten App, die wir installieren?

und ...

Nach Deinstallation Xamarin Anwendungen wird die Mono-Laufzeit zu deinstalliert? Wenn nicht, wie deinstallieren wir Mono Runtime?

als Sie

Antwort

1

Ich glaube, Sie nur den Zweck der Mono-Laufzeit mit jedem Xamarin Android App gebündelt falsch verstanden. Es ist nicht in Ihrem App-Paket enthalten und dann auf dem System installiert. Es ist im Paket enthalten, so dass jedes Mal, wenn Sie Ihre App ausführen, tatsächlich die Mono-Laufzeitumgebung in Ihrem Paket enthalten ist, die dann Ihre App Ihre App ausführt.

Zuerst mag es ein wenig blöd erscheinen (da jede Ihrer Apps eine eigene Mono-Laufzeitumgebung enthält), aber dies ermöglicht es Ihnen, verschiedene Apps auf Ihrem Handy zu haben, die auf verschiedenen Mono-Laufzeiten laufen von wie in Doker-Containern.

Die einzige Ausnahme ist die Verwendung Ihres Telefons oder Android-Emulators zum Debuggen. Um den Prozess zu beschleunigen, werden spezielle "shared packages" installiert, die jedoch nur zum Debuggen verwendet werden.

+0

Vielen Dank für Ihre Antwort. Jetzt verstehe ich, wie Xamarin funktioniert. Ich denke jedoch, dass der Ansatz, den sie wählen, ein Schuss auf Xamarins Füße ist. Der einzige Vorteil von Xamarin ist der Einmal-Schreibcode für Multiplattform. In Bezug auf sprachspezifische Besonderheiten ist C# so etwas wie Java-Klon. Also denke ich, ist nicht die Megabyte Mono Overhead wert. –

+0

Ich mag die Idee, dass jede App ihre eigene Mono Runtime gebündelt hat. Haben Sie weitere Informationen zu den freigegebenen Paketen für den Debug-Modus? Wo befinden Sie sich? Kann ich sie beispielsweise von meinem Gerät entfernen, um ein merkwürdiges Verhalten auszuschließen? – mvandillen

Verwandte Themen