構建變種版本

1  主要應用場景

1)  同一個應用的不同版本。 例如一個免費的版本和一個收費的專業版本。

2)  同一個應用需要打包成不同的apk以發佈Google Play Store。點擊此處查看更多詳細信息。

3)  同一個應用需要打包成不同的apk以發佈Google Play Store。、點擊此處查看更多詳細信息。

2  構建規則

2.1  默認配置(defaultConfig)

如果項目中沒有定義flavor,則直接使用默認的flavor(defaultConfig) + BuildTypedefaultConfig是沒有名字的,所以生成的BuildVariant列表看起來就跟Build Type列表一樣。

2.2  Product Flavor

Product Flavor + Build Type = Build Variant,根據排列組合的方式構建變種版本,每一種組合(包含Build TypeProduct Flavor)就是一個Build Variant(構建變種版本)。例如:有Release和Debug兩種Build Type,Flavor1和Flavor2兩種變種版本,則可以構建2*2=4種變種版本(Flavor1Release、Flavor1Debug、Flavor2Release、Flavor2Debug)。

2.3  SourceSet

每個變種版本都可以有自己的sourceSet,如下圖:

            

構建時對不同的sourceSet進行處理時,符合下面的股則:

1)  多個文件夾中的所有的源代碼(src/*/java)都會合並起來生成一個輸出。

2)  所有的Manifest文件都會合併成一個Manifest文件。類似於Build Type,允許Product Flavor可以擁有不同的組件和權限聲明。

3)  所有使用的資源(Android res和assets)遵循的優先級爲Build Type會覆蓋Product Flavor,最終覆蓋main sourceSet的資源。

4)  每一個Build Variant都會根據資源生成自己的R類(或者其它一些源代碼)。Variant互相之間沒有什麼是共享的

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