web-dev-qa-db-ja.com

APKファイルのサイズを減らす方法は?

まず第一に、私に提案しないでください 公式ドキュメント または this 。 Android Studioで「helloworld」を表示するだけの事前定義されたテキストビューを使用してアプリを作成すると、1.2 MBを超えるAPKが生成されます。ただし、Playストアの一部のアプリは500KB未満で利用できます。機能。私はすでにAndroid Studioのようなproguard、minifyEnabledなどのすべての機能を適用しましたが、それは役に立ちません。では、どうすればそのレベルの圧縮を達成できますか?

11
Rohit Singh

APKサイズを縮小するポイント:
1。ベクトルドローアブルを使用する
2。 xmldrawableを使用して単純なビューを作成します
3。再利用するためにxmlドローアブルを使用して画像を回転します(矢印ボタンの場合など)
4。コードを介してドローアブルを作成する
5。 aaptOptions {cruncherEnabled = false}を使用して画像を圧縮します
6。大きな画像にはwebP形式を使用します
7。列挙を避け、@ IntDefアノテーションを使用します
8。 gradleでshrinkResourcestrueを使用して、未使用のリソースを削除します
9。 gradleでresConfig“ en”を使用して、他のローカリゼーションを削除します

8
Sanjay Kumar

問題は サポートライブラリ にある可能性があります。空のプロジェクトにcom.Android.support:appcompat-v7:27.0.2を追加すると、APKサイズが80KBから1.3MBに増加しました。したがって、minSDKが十分に高く、ヘルパークラスが必要ない場合は、それを取り除くことができます。

APK Analyzer を使用して、実際にスペースを占めるものを確認できます。

6
makovkastar

Android studioから新しいプロジェクトを作成すると、IDEはプロジェクトにいくつかの依存関係を自動的に追加します。

dependencies {
    // ...
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // implementation 'com.Android.support:appcompat-v7:26.1.0'
    // implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
    // ...
}

support libraryconstraint layout libraryをバンドルすると、コードを追加しなくてもリリースAPKサイズが急速に増加します。

サポートライブラリと制約レイアウトライブラリを削除し、すべてのシステムAPIを使用すると、非常に小さなapkを取得できます。

サポートライブラリを削除した後、

  1. ActivityYourActivity extends ActivityではなくAppCompatActivityを使用します

  2. AndroidManifest.xmlのサポートライブラリのテーマは使用しないでください

  3. レイアウトのFrameLayoutを置き換えるにはConstraintLayoutを使用します

6
alijandro