2016-04-01 8 views
3

私はXamarin Formsアプリケーションをポータブルクラスライブラリ(Portable Class Library)(PCL)で作成しています。Visual Studio 2015で構築されたapkサイズを減らす方法は?

2つの画面でアプリケーションを作成しました。 .apkが生成されると、重すぎると指摘しました。私はそれがLinker/Linking processに起因するのを見ました。

私はの.apkを生成するために行われている手順は次のとおりです。

  1. ビルド構成:リリース - どれCPU
  2. Bluid - >ソリューションのクリーン
  3. ビルド - >
  4. ソリューションのビルドソリューションエクスプローラで、Android(Droid)プロジェクトを選択します
  5. ビルド - > Androidパッケージをエクスポート(.apk)
  6. apkパッケージはproject_forder/bin/Release/project-name.Droid-Signed.apk

結果は約17 MBのパッケージです。私はサイズを小さくしようとして行っている

の手順は次のとおりです。

  1. 右のAndroid(ドロイド)プロジェクト
  2. クリックして "プロパティ" オプション
  3. タブ "のAndroidオプション"
  4. その後を「オーバークリックしてくださいリンカ "タブ
  5. リンクコンボでは、Sdkアセンブリのみを選択します
  6. そして、私はapkを生成する手順を繰り返します。

コンボをリンクする際、私は選択:

  • SDKアセンブルのみ:APKのサイズと同じである(18 MB)
  • は、SDK、ユーザがアセンブル:サイズ減少(14 MB)を、しかし、私はそれがあまりにも多いと思う。また、モバイルアプリケーションや実行中のアプリケーションにパッケージをインストールすると、すぐに停止します。私はこれが含まれていないいくつかの依存関係に関連していると思う。

注:

  • 私はまだ画像リソースを設定していません。
  • 私はNuGetからの依存関係ZXingを含んでいました。

編集:私はAPKをunziped、その構造がある

  • /アセンブリ/(10.8メガバイト、.dllファイルのの多くの)
  • /libに/ armeabi /(2.84 MB、libmonodroid.so、libmonosgen-2.0.so)
  • /lib/armeabi-v7a /(2.80 MB、libmonodroid.soおよびlibmonosgen-2.0を使用)そう)libmonodroid.soと/ libに/のx86 /(3.41メガバイト
  • 、及びlibmonosgen-2.0.so)
  • /META-INF /(100キロバイト)
  • /RES /(1.02 MB)
  • AndroidManifest.xml(4 KB)
  • classes.dex(2.5 MB)
  • 環境(1 KB)
  • 注意(1 KB)
  • resources.arsc(241キロバイト)
  • typemap.jm( 332 KB)
  • typemap.mj(381キロバイト)が

一つの解決策は、各アーキテクチャ用の.apkを作成しています。この場合、各.apkには13〜14 MBが必要です。libフォルダにはlibmonodroid.soとlibmonosgen-2.0.soのみが含まれています。私はまだそれがあまりにも14 MBだと思っています。

アセンブリフォルダ内のどのファイルが省略されているかを知るにはどうすればよいですか?

Google Playで単一の.apkを公開すると、apkパッケージにすべてのアーキテクチャ(arm、x86など)用のライブラリがあり、パッケージに17 MBがかかると聞いたことがあります。ユーザーがアプリをダウンロードすると、Google Playは特定のモバイルユーザーの特性(14 MB)で.apkを作成します。本当ですか?もしそうなら、17 MBの.apkを公開することは問題ではないでしょう。

このanswerは私の質問について話していますが、除外できるアセンブリや除外する対象を明確にしていません。私は.apkファイルを開く/解凍し、ライブラリとアセンブリを削除することは丁寧な解決策だとは思わない。

+1

私はあなたの.apkを解凍し、その内部に何があるのか​​を見るために、小さな太陽のアドバイスに従うことをお勧めします。あなたは、単に(http://www.derlien.com/)ABIは、あなたが含めている –

+3

をの.apkを抽出して、Mac上でWindows上でWinDirStat(https://windirstat.info/)またはディスクインベントリXのようなツールを使用することができますあなたのAPKで? NDKベースのMonoランタイムに加えて、ユーザーアセンブリが権利についての音のために13メガバイトのよう...ここに私の答えをチェックアウトhttp://stackoverflow.com/a/33416893/4984832の – SushiHangover

+2

可能な複製([Xamarin.Android APKのサイズを縮小する助けてください] http://stackoverflow.com/questions/33415053/please-help-reducing-xamarin-android-apk-size) – SushiHangover

答えて

1

あなたはそれが含まれているパッケージを確認するためにAPKをクラックすることができますlarge.Andので、それを作るどの部分ルックアップするためのapkを解凍することができます。

関連する問題