有更好的文章可以參看:
https://blog.csdn.net/shijianduan1/article/details/83410267
https://blog.csdn.net/qq_31694651/article/details/75201178
遇到的情況
目前一個應(yīng)用需要為不同的項目適配不同的界面猴贰,但是應(yīng)用的邏輯代碼并沒有變化
以下為處理方法:
配置產(chǎn)品特性
在app的gradle中配置如下:
// 產(chǎn)品特性羽杰,比如版本或者渠道等隐轩,可添加多個
flavorDimensions "version"
android {
...
defaultConfig {...}
buildTypes {
debug{...}
release{...}
}
// Specifies one flavor dimension.
flavorDimensions "version"
productFlavors {
demo {
// Assigns this product flavor to the "version" flavor dimension.
// This property is optional if you are using only one dimension.
dimension "version"
applicationIdSuffix ".demo"
versionNameSuffix "-demo"
}
full {
dimension "version"
applicationIdSuffix ".full"
versionNameSuffix "-full"
}
}
}
創(chuàng)建資源集合
接下來我們在Studio菜單欄中點擊Sync Now之后我們就可以在Build Variants中發(fā)現(xiàn)如下幾個可選編譯的產(chǎn)品:
demoDebug
demoRelease
fullDebug
fullRelease
然后我們按照如下順序為不同的項目建立資源集合
1.打開 Project 窗格,然后從窗格頂部的下拉菜單中選擇 Project 視圖锯厢。
2.轉(zhuǎn)到 MyProject/app/src/。
3.右鍵點擊 res 目錄,然后依次選擇 New > Folder > Res Folder腕铸。
4.從 Target Source Set 旁邊的下拉菜單中,選擇 debug铛碑。
5.點擊 Finish狠裹。
配置資源集合
我們在app的gradle中配置如下:
sourceSets {
demo {
res.srcDirs('src/demo/res')
}
}
最后我們只要把差異的文件放在demo中對應(yīng)的res中即可,比如我們可以在layout中修改使用的控件信息等汽烦,這些文件保持與原項目文件同名涛菠,在編譯時會自動選擇,但是如果想要在編譯時使用相同名稱的java文件,編譯時則會提出報錯