web-dev-qa-db-ja.com

AndroidとiOSでのアプリファイルサイズの違い

両方のアプリ配布サービス(AndroidマーケットとApple App Store))での作業私は謎を発見しました。

アプリのファイルサイズは、一般的にAppleアプリの場合、Androidアプリの場合よりも大きくなります。違いの説明が見つからないようです。 、そしてそれは手付かずの主題のようです。

私はさまざまなアプリを割り当ててみましたが、数MBから6〜8 MBの違いがあるようです。 Appleアプリの場合、ファイルサイズが大きくなるのはなぜですか。追加のMBは何に使用されますか?

例:

BBC:

Android:918K- https://market.Android.com/details?id=bbc.mobile.news.ww

アップル:6.7 MB- http://iTunes.Apple.com/dk/app/bbc-news/id364147881?mt=8

スパム防止のため、残りに直接リンクすることはできません。

英国航空

Android:1.2 MB

アップル:7.9 MB

ノーザンバンク

Android:2.1 MB

アップル:6.4 MB

アメリカ銀行

Android:727K

アップル:2.1 MB

私は続けることができます...誰かが2つのアプリ配布のファイルサイズの統計を提供できる場合、私の理論を確認または反証します。 -割り当てていただければ幸いです。

29
Thomas Volden

私はちょうどちょうど最終日を過ごしたかのように、この正確な問題を追跡しようとしています。 Android用のBlockITと呼ばれる小さなゲームを作成しましたが、iOS用の実行中のバージョンができました。非常に奇妙なことは、Android=バージョンが8.2 MB、iOSバージョンが14.1 MBであることです。

さて、私はソースの所有者なので、これを追跡して理由を知りたかったのです。多くの人がここでそれがグラフィック要素であることを示唆しているように-これはそうではありません。データセット全体(非コード)は、各パッケージでほぼ同じでした。各アプリケーションで同じグラフィックを使用しているので、これは理にかなっています。

だから、なぜコードのビルドはそんなに違うのですか!私のiOSコードビルドはほぼ7 MBで、Android 1は3 MB未満でした。コード自体は同じように実行するように作成されており、コードのごく一部を除くすべてが各プラットフォームでまったく同じです。私が見つけたのは、ビルド(iOS gcc)設定が、取得する出力のサイズに大きな影響を与えるということでした。ARM6またはARM7のみをターゲットに設定すると、コードバイナリのサイズが7 MBから5 MBに減少しました。これは、 1つのバイナリの各ターゲットの関数とライブラリのほぼ完全な複製です!さらに、組み込みのデバッグシンボルは完全に取り除かれているようには見えません。最後に、コードの暗号化にも大量のコストがかかります。これはおそらく最も不可解です。 Androidは同様の方法でAPKに署名します。iOSの署名は非常に奇妙に行われているようです。

それで、それが役に立てば幸いです。繰り返します:
-画像/データに問題がないようです
-iOSでコードをビルドすると、1つのバイナリで複数のプラットフォーム出力が生成されます==大量の追加コード(なぜかわからないAppleがこれを行う-奇妙に思われる)。
-コード暗号化は、iOSではサイズにあまり適していません。

実際の問題を修正する実際の方法はありません(ここでも、奇妙でがっかりします)。

19
user1363990

IOSアプリのバイナリ実行可能ファイルは暗号化されているため、圧縮率が非常に低いか、まったく圧縮されません。 iOSアプリのバイナリ実行可能ファイルは、静的にリンクされたいくつかのライブラリコードでコンパイルされます。これにより、類似したものの解釈されたDalvikバイトコードよりも大きくなることがよくあります。 iPhoneアプリには、比較的大型のiPadディスプレイを含む複数の画面解像度向けに、より高品質のグラフィックコンテンツとアートワークが含まれる傾向があります。

6
hotpaw2

IPhoneのユニバーサルアプリの場合、3つのサイズの画像を配置する必要があります-

1つは320x480ピクセル用
秒、640x940ピクセル(網膜)
768x1024の3番目(iPad)

ここで、Androidアプリケーションの開発中に、3種類の画像を配置する必要があります-

hdpi(高)
mdpi(中)
ldpi(低)

Android=にもう1つあります。3種類の画像すべてを配置する強制規則はありません。基本的には、アプリを作成するターゲットによって異なりますが、画像を配置する必要がある解像度についてのみです。

1
saadnib