Android開發——利用productFlavors實現一套程式碼打包多版本
阿新 • • 發佈:2020-10-21
一、需求背景
實際專案開發過程中,經常會遇到這樣的場景:一個專案要根據需要打包成多個存在差異的版本,比如對外版本、對內版本,或者開發版本、測試版本、線上版本等等……那麼如何通過維護一套程式碼的前提下實現打包多版本的需求呢?在Android Studio中我們可以使用productFlavors來實現這樣的需求。
二、建立差異化版本目錄結構
根據版本的差異化在src目錄下建立對應的java資料夾,如下圖:
建立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)+"對外應用"); }
五、按版本打包
簽名打包的時候,選擇對應的版本即可
轉載於:https://blog.51cto.com/alany/1827538