2017-07-04 50 views
8

我決定嘗試使用apk插件來縮小我的apk的大小。我增加了以下我gradle這個build文件按密度分割的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。但是,我注意到所有的apks都是相同的大小,沒有一個比通用apk小。所以,我將一個(app-hdpi-release.apk)加載到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' 
    } 
  } 
}