前言:

     關(guān)于Android渠道打包是一個(gè)比較老的話題,今天主要記錄總結(jié)一下多渠道打包以及如果動(dòng)態(tài)配置修改一些資源屬性。今天以公司實(shí)際需求為例進(jìn)行演示,由于項(xiàng)目復(fù)用很多公共的業(yè)務(wù)組件,而且業(yè)務(wù)組件之間的跳轉(zhuǎn)采用Scheme協(xié)議,每個(gè)業(yè)務(wù)組件的host地址不變,所以需要在打包的時(shí)候動(dòng)態(tài)修改scheme協(xié)議名字。為了方便舉例,首先我們這里假設(shè)我們一個(gè)App要打出兩個(gè)不同的渠道,方便進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。

第一步聲明一個(gè)渠道參數(shù) AndroidManifest.xml中

<meta-data android:name="APP_CHANNEL"
 android:value="external" />

為了方便通過gradle自動(dòng)替換,value需要替換成標(biāo)記位的方式

 <meta-data  android:name="APP_CHANNEL"
  android:value="${APP_CHANNEL}" />

第二步在gradle中利用productFlavors聲明渠道類型,

  比如我們這里聲明一個(gè)外部版本一個(gè)內(nèi)部版本,manifestPlaceholders 替換AndroidManifest中的${APP_CHANNEL}值

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

    productFlavors {
        external {
            manifestPlaceholders = [APP_CHANNEL: "external"]
        }
        internal {
            manifestPlaceholders = [APP_CHANNEL: "internal"]
      &n