1. 程式人生 > >Build Variants Android變體構建配置

Build Variants Android變體構建配置

官方文件

主Module中build.gradle

  • defaultConfig
defaultConfig {
    applicationId "XXX.XXX.com.XXX"
    minSdkVersion 16
    targetSdkVersion 28
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
  • signingConfigs
signingConfigs {
    config {
        keyAlias 'XXX'
        keyPassword 'XXX123'
        storeFile file('D:/XXX/XXX.jks')
        storePassword 'XXXX'
    }
}
  • buildTypes
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config
    }
    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config
    }
}
  • productFlavors
flavorDimensions "fix"
productFlavors {
    online {
        versionCode 1//該風味版本碼
        versionName "1.0"//該風味版本名稱
        dimension "fix"
    }
    offline {
        versionCode 2//該風味版本碼
        versionName "2.0"//該風味版本名稱
        dimension "fix"
        applicationIdSuffix ".fix"//設定該風味applicationId,會在原有得applicationId後面追加.fix(至此online風味包與offline風味包可以在同一部機器上共存,相當於馬甲包了)
        versionNameSuffix "-fix"//設定該風味版本名稱,會在原有得versionName後面追加-fix
    }
}
  • 為打包好的APK重新命名
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}.apk"
    }
}

Sync Now 檢視變體型別

在這裡插入圖片描述

為APP設定不同風味的名字,啟動圖示

  • 設定不同的app name
    offine/res/values/strings.xml 目錄中的檔案也會與main/res/values/strings.xml合併在一起。main包中app name值會被風味包中app name值替換掉。
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

  • 設定不同的啟動圖示
    風味包中res/asset/ 目錄中的資源將與main包合併,若值相同將以風味包中為準。

  • 清單檔案也會被合併

  • java檔案合併,若風味包與main包中有相同的java檔案,編譯時將會報錯。解決辦法是將該java檔案單獨放到風味包中,合併時候就會將風味包中的檔案併入main包中。