2017-08-26 7 views
1

私のインスタントアプリapkのサイズを縮小しようとしています。メインモジュールをいくつかの小さなモジュール(フィーチャーとライブラリ)に分けることができました。アプリケーションがビルドされると、apkファイルのサイズは4.9 MB(基本機能)、5 MB(UI機能、フラグメント、レシーバなど)と1.3 MB(アイテム詳細機能)です。問題は、サイズの大部分を使用しているパッケージが... com.google.android.gms.internal(下の画面)であるため、他にモジュールから切り捨てることができないことがわかりません。apkのGMSサイズを減らす方法

BaseFeature: enter image description here

UI機能: ui feature

私はより多くのこれらのモジュールを分割した場合でも、このライブラリに問題がまだ存在することを恐れています。アプリケーションのインスタントアプリを終了するのは本当に近いですが、サイズが大きすぎるためにファイルをアップロードできません。誰もがこれを理解する方法を知っていますか?

+1

Proguardの設定を見ずにアドバイスをするのは難しいです。短いパッケージ名(1シンボル程度)で再パッケージング( '-repackageclasses')を有効にする2)すべてのデバッグ属性を取り除く(たとえば、デフォルトのgoogle proguard configはすべての注釈を保持する:-keepattribute * Annotation * '、しかしあなたはおそらくそれらなしで暮らすことができます)。 3)braindeadライブラリやProguard設定ファイルを用意していないので、proguardによって多くのコードが処理されることはありません。後者は特に重要です。手作業で保護されたjarファイルを手動で検査し、そのクラスが最小限に抑えられるようにします。 – user1643723

+0

com.google.android.gms。*のコピーが「ベース」と「UI」の両方にあるようです。ベースフィーチャで定義されたクラスまたはリソースには、他のフィーチャからアクセスできるため、これは必要ではありません。 – dchai

答えて

1

一般的にはreduce APK sizeにできることは次のとおりです。

ドキュメントの範囲内にあるメソッド。あなたのAPKを小さくする簡単な方法の

  1. Reduce resource count and size

    一つ、それに含まれるリソースの 数とサイズを削減することです。特に、 はあなたのアプリが使用していないリソースを削除することができ、画像ファイルの代わりに スケーラブルDrawableオブジェクトを使用することができます。

    • ライブラリ
    • サポートのみ特定の密度
    • 使用描画可能オブジェクト
    • 再利用資源
    • からのリソース使用を最小限に抑え
    • 未使用のリソースを削除するコード
    • クランチPNGファイルからレンダリング
    • C ompress PNGやJPEGファイル
    • 使用WEBPファイル形式
    • 使用ベクタグラフィックスアニメーション画像
  2. Reduce native and Java code

    • ため
    • 使用ベクタグラフィックスを列挙を避け、不要な生成されたコード
    • を削除します
    • Reduceネイティブバイナリのサイズ
    • は、ネイティブライブラリ
  3. Maintain multiple lean APKs

あなたのAPKは、地域 のように、ユーザーがダウンロードしませんが、決して使用したコンテンツを含めることができますを抽出

  • 回避をデバッグシンボルを削除しますまたは言語情報。 の最小ダウンロードを作成するには、画面サイズやGPUテクスチャサポートなどの要因によって で区別されたアプリを複数のAPKに分割することができます。

  • Shrink Your Code and Resources

    への別の参照あなたのAPKはできるだけ小さいファイルにする、あなたのリリースビルドでは、未使用のコードとリソースを削除するために縮小 を有効にする必要があります。 このページでは、その方法と、ビルド中にどのコードとリソースを保持または破棄するかを指定する方法について説明します。

    関連する問題