以友盟的多渠道打包爲例,假設我們需要打包出如下渠道:UMENG, WANDOUJIA, YINGYONGBAO。
第一種方法,是需要創建文件的。
我們在寫完我們的代碼之後,在app/src下面,分別創建和main同級目錄的文件夾umeng, wandoujia, yingyongbao,這三個文件夾裏面都各只有一個AndroidManifest.xml文件,文件只需要如下:
然後在你的build.gradle的android{}節點裏面,添加productFlavors節點,代碼如下:
注意這裏的flavors的名字要和你的文件夾的名字對應。這樣配置之後,構建的就是多渠道的APK了。
第二種方法,不用創建那些文件,它使用的是Gradle Android插件裏的另一個功能,manifestPlaceholders。
在這種方法中,你只需要在AndroidManifest.xml中,對友盟的渠道進行這樣配置:
然後同樣使用productFlavors,不過這時它的配置是這樣的:
在上面當中,我們也可以指定一個默認的渠道名,如果需要的話。指定默認的值是在defaultConfig節點當中添加如下內容:
這裏的Unspecified換成你實際上的默認的渠道名。
使用manifestPlaceholders的這種配置,同樣適用於manifest的其他配置。比如你需要在不同渠道發佈的apk裏面,指定不同的啓動Activity。比如在豌豆莢裏面發佈的,啓動的Activity顯示的是豌豆莢首發的界面,應用寶裏面啓動的是應用寶首發的界面(哈哈,有點壞),你就可以對你的activity的值使用${activity_name}的方式,然後在productFlavors裏面配置這個${activity_name}的值。