1. 程式人生 > 實用技巧 >Android開發——利用productFlavors實現一套程式碼打包多版本

Android開發——利用productFlavors實現一套程式碼打包多版本

一、需求背景

實際專案開發過程中,經常會遇到這樣的場景:一個專案要根據需要打包成多個存在差異的版本,比如對外版本、對內版本,或者開發版本、測試版本、線上版本等等……那麼如何通過維護一套程式碼的前提下實現打包多版本的需求呢?在Android Studio中我們可以使用productFlavors來實現這樣的需求。


二、建立差異化版本目錄結構

根據版本的差異化在src目錄下建立對應的java資料夾,如下圖:

wKioL1eM4Cnxki60AAAhoWOpqFE030.png

建立external與internal版本,將版本差異化的程式碼檔案放在這2個目錄對應的資料夾下,具體的目錄層次同main下面的一樣即可;


三、配置gradle檔案

在moudle的gradle配置檔案中增加如下配置:

android{

……

productFlavors{
internal{
manifestPlaceholders=[app_label:"對內app"]
applicationId"com.ad.demo.internal"
}
external{
manifestPlaceholders=[app_label:"對外app"]
applicationId"com.ad.demo.external"
}
}
}


四、在程式碼中判斷版本

如果有些邏輯需要在程式碼中判斷版本,可以通過BuildConfig.FLAVOR去獲取當前選擇的是什麼版本值:

if(BuildConfig.FLAVOR.equals("external")){
textView.setText(getResources().getString(R.string.my_app_name)+"對外應用");
}


五、按版本打包

簽名打包的時候,選擇對應的版本即可

wKioL1eM45rSsWBwAAAtItRx_bM966.png


轉載於:https://blog.51cto.com/alany/1827538