2016-08-30 15 views
2

私はXamarin.Formsで新しいプロジェクトを作成し、それをデバッグします。私は何もせず、Apkファイルを作成し、apkサイズは14.2 MBです。私は、すべてのアセンブリをリンクするためのチュートリアルとリンカの動作を変更しました。 Apkのサイズを1 MBまたは2 MBに縮小します。実際、私はこのようなApkのサイズがいくつかのkbsにあるはずだと予想しています。私はここで何が欠けているのですか?Xamarin.Forms:Apkのサイズが大きすぎます

+0

Xamarinは実際にアプリケーションを実行できるようにするため、APK内のランタイムをパッケージ化しています。ランタイムがなければ、アプリはAndroid上で実行できません。ほとんどのユーザーにアプリを提供する予定がある場合、APO内にMONOランタイムを含める以外の方法はありません。 *クロスプラットフォーム*アプリケーションを作るための価格です –

答えて

7

documentationですべてのことを読むことができます。

ここでの主な問題は、Androidデバイスではデフォルトでは利用できないため、多くの.NETのものが含まれていることです。

APK size without Linker (Image by Xamarin)

15.8メガバイト我々は希望よりも大きなダウンロードサイズです。問題はBCLライブラリで、mscorlib、System、Mono.Android、 が含まれており、 アプリケーションを実行するために必要なコンポーネントが多く提供されています。ただし、アプリケーション内で使用しない可能性のある機能も提供していますので、これらのコンポーネントを除外することをお勧めします。

しかし、それらは必要ではないかもしれません!これは、リンカの出番、私たちは配布用のアプリケーションを構築する場合、我々はプロセスを実行

APK size when using the Linker (Image by Xamarin)

。あるアプリケーションを調べて、直接ではありません任意のコード を削除リンクとして知られている 中古。このプロセスは、ヒープ割り当て のメモリにガベージコレクションが提供する の機能に似ています。

Xamarin.Droidプロジェクトプロパティからリンカー設定にアクセスできます。そこのさまざまな設定を見て、その効果を確認するためにプレイしてください。

+1

完璧な答えです。 –

+0

すぐにお返事ありがとうございます。私は続いた - アンドロイドプロジェクト - > Androidビルド - >リンカ - >すべてのアセンブリをリンクをダブルクリックします。それは大丈夫か他の何かですか? – Dipak

+0

リンカの動作を選択しました**リンクSDKアセンブリのみ** –

関連する問題