2017-07-04 2 views
8

私はapkのサイズを小さくするためにapk slipttingを試すことにしました。私は自分のgradleビルドファイルに以下を追加しました密度別にAPKを分割してもすべてのリソースが含まれています

splits { 

    // Configures multiple APKs based on screen density. 
    density { 

     // Configures multiple APKs based on screen density. 
     enable true 

     // Specifies a list of screen densities Gradle should not create multiple APKs for. 
     exclude "ldpi" 

     // Specifies a list of compatible screen size settings for the manifest. 
     compatibleScreens 'small', 'normal' 
    } 
} 

これは、様々な密度に対して別々のapkを生成することに成功しました。しかし、私はすべてのAPKのサイズが同じで、普遍的なAPKよりも小型ではないことに気づいた。そこで、私はapkアナライザに1つ(app-hdpi-release.apk)をロードし、すべてのリソースが含まれていることがわかりました。何も取り除かれなかった。

すべての設定は同じファイル名を使って同じapkを生成することが効果的でした。何か不足していますか?削除されるリソースを潜在的にブロックする可能性がある他のビルドオプションはありますか?

+0

ブロック - 最終分割されますが、正しく描画可能-xxxのフォルダに分割さリソースを持っていますか? – MatPag

+1

はい、正しく動作します。私は、さまざまな濃度のイメージを異なる色でマーキングし、適切なイメージが異なるデバイスに表示されていることを確認することでこれをテストしました。 – aaronmarino

答えて

0

私はいくつかのヒットとトライアルを行い、最終的にそれを受け入れました。私がスクリーンの密度だけに基づいて分割する前に。それから、$ compatibleScreens $というタグを付け加えました。ここで

android { 
  ... 
  splits { 

    density { 
      enable true 

      reset() 
      include "mdpi", "hdpi", "xhdpi",  "xxhdpi" 

      // This is the line of code which got it right 
      compatibleScreens 'small', 'normal', 'large', 'xlarge' 
    } 
  } 
} 
関連する問題