4. 優化res資源管理, 使用SourceSets資源分包
問題描述:在一個專案中, 所有的資原始檔都放在res下, 特別是圖片佈局等資源, 隨著專案的的擴大, 會越來越多, 維護起來非常非常困難, 這個時候我們就想,能不能像邏輯程式碼那樣分包管理呢? 其實是可以的, 下面看一下具體操作.
首先開啟目錄下的build.gradle檔案.然後在android下的新增SourceSets標籤, 如下圖:

SourceSets.png
SourceSets還有別的用途, 這裡只討論資源分包
資源放在什麼位置不重要,重要的是要手動配置資源目錄,也是需要手動指定位置, 寫法也有好幾種, 原理其實也差不多, 這裡只是其中的一種.
原理:如果不用SourceSets標籤的話, 系統會預設在res目錄下尋找, 圖片找drawable資料夾, 佈局找layout等檔案, 但是用了SourceSets標籤以後, 系統只會在SourceSets標籤指定的目錄中尋找.
例如: SourceSets中沒有指定原來預設的res, 那麼res裡面的資源就無法使用.
//資源分包 sourceSets{ main { //'src/main/res', 'src/main/res-main/home', } }

sourceSets.png
注意:無論資源怎麼分包, 圖片一定要用drawable或drawable-xx資料夾裝著, 當然也可以用mipmap, 佈局一定要在layout資料夾下 等等