Android productFlavors 差異化打包

最近有個教育類項目,需要四個app端,主題樣式差不多有不少公共代碼,如果創建四個AS工程,不利與代碼管理且後期維護的難度加大。本着面向度娘編程的原則搜索了一波解決辦法,發現gradle自帶的productFlavors差異化打包工具 這個好東西,有效解決我以上問題,記錄一下踩坑過程。

一. 配置productFlavors

二. 創建工程結構

三. 快樂編碼

四. 調試、打包、注意事項

一. 配置productFlavors

在build.gradle(app)文件中:

配置了 parents 和 school 家長和學校端 ,配置各端applicationId...屬性,則學校端包名爲com.xxx.xxx.parents,註冊第三方appkey時需使用該包名


 

1. manifestPlaceholders : 配置不同屬性:

在mian-AndroidManifest.xml中使用manifestPlaceholders 中定義的屬性值(公共權限、公共組件註冊、第三方Appkey配置在該文件中)

2.buildConfigField:自定義區分 (公共代碼中區分是哪一個app在運行)

可以通過 BuildConfig.FLAVOR  或 buildConfigField自定義的名字區分

3. implementation   /  schoolimplementation: 全部依賴第三方庫/ 僅家長端依賴

二. 創建工程結構

紅色爲默認main包,裏面寫一些公共utils,application,base基類...等。手動新建如果紫色main同級parents工程目錄

三. 快樂編碼

注意事項:

子項目(school)中代碼可以調用公共類(main)中的代碼,公共類中不能出現調用子項目的代碼

四. 調試、打包

選擇不同子項目調試

一起打包

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章