2016-05-23 11 views
1

任意の.NET言語(C#、VB.NET、F#など)で開発されたAFAIKデスクトップアプリケーション。 には.NETランタイムは含まれず、すべてのアプリケーションは同じ.NETフレームワークで実行されました。Android用Xamarinは複数回インストールされたMonoランタイムですか?

Androidの場合、これは正しくありません。すべてのアプリには、APK内のMonoフレームワークが含まれています。

したがって、Xamarinによって生成されたAPKは大変です!

hereが表示されているように、6K HelloWordアプリケーションは、Monoフレームワークとライブラリ全体を含めて15.8Mまで成長します。

リンカの後でさえ、6K HelloWord Appはまだ2.9M(HelloWorld Appの480倍以上)のままです。

私が何をしたい(したい場合は、Monoのオーバー-ART)Xamarinと私たちは、「ランタイム・オーバー・ランタイム」環境、すなわちモノオーバーのDalvikを使用していることは言うまでもない

がこれを簡素化、すべてのAPKにはMonoフレームワークが含まれているため、Monoフレームワークはすべてのアプリにインストールされるか、または最初にインストールするアプリのみでインストールされますか?

と...アンXamarinのアプリの後

、Monoランタイムがあまりにもアンインストールされていますか?そうでない場合は、Monoランタイムをどのようにアンインストールしますか?あなた

答えて

1

より

私はあなただけで、各XamarinのAndroidアプリケーションにバンドルMonoランタイムの目的を誤解だと思います。 あなたのAppパッケージには含まれていません。その後、システムにインストールされます。 これはパッケージに含まれているので、アプリケーションを実行するたびに、実際にパッケージがパッケージに含まれています。は、を実行します。

最初は少し愚かなように見えるかもしれませんが(あなたのアプリはすべてそれにパッケージ化された独自のMonoランタイムを持っているので)、これはあなたの携帯電話で異なるアプリを持つことができます。 Dokerコンテナのようなもの。

唯一の例外は、携帯電話またはAndroidエミュレータをデバッグに使用することです。次に、プロセスを高速化するために、特別な「共有パッケージ」をインストールしますが、デバッグにのみ使用されます。

+0

ありがとうございました。今私はXamarinの仕組みを理解しています。しかし、彼らが選ぶアプローチは、Xamarinの足での撮影だと思う。 Xamarinの唯一の利点は、マルチプラットフォームのためのコードを一度書くことです。言語仕様に関して、C#はJavaクローンのようなものです。だから私は、メガバイトのMonoオーバーヘッドに値するものではないと思います。 –

+0

私は、各アプリケーションに独自のMonoランタイムがバンドルされているというアイデアが気に入っています。デバッグモードの共有パッケージに関する情報はありますか?彼らはどこに位置していますか?たとえば、デバイスから削除して、奇妙な動作を除外することはできますか? – mvandillen

関連する問題