Android Studio工程配置

1.gradle android 版本統(tǒng)一管理
1)在工程目錄下build.gradle里面聲明

ext {
    config = [
            minSdkVersion        : 19,
            targetSdkVersion     : 24,
            compileSdkVersion    : 26,
            buildToolsVersion    : "26.0.2",
            versionName              : "5.5.1",
            versionCode              : 551,
            supportLibraryVersion: "26.0.0",
            develop_version_code :  551,
            develop_version_name : "5.5.1.1",
            publish_version_code :  551,
            publish_version_name : "5.5.1"
    ]
}

2)在module下面的build.gradle里面編寫

defaultConfig {
        applicationId "com.xxx.xxx"
        minSdkVersion config.minSdkVersion
        targetSdkVersion config.targetSdkVersion
        versionCode config.versionCode
        versionName config.versionName
        flavorDimensions "versionCode"
    }
dependencies {
     compile "com.android.support:recyclerview-v7:$config.supportLibraryVersion"
}

2.signingConfigs簽名配置

 signingConfigs {
        sign {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('key/xxx.keystore')
            storePassword 'xxx'
        }
    }

注意事項:需要放置在引用到之前
3.productFlavors 多版本、多環(huán)境

productFlavors {
        develop {
            applicationId "xxx.xxx.xxx_dev"
            versionCode config.develop_version_code
            versionName config.develop_version_name
            buildConfigField("String", "API_HOST", "\"www.local.xxx.com/api/\"")
        }
        publish {
            applicationId "xxx.xxx.xxx"
            versionCode config.publish_version_code
            versionName config.publish_version_name
            buildConfigField("String", "API_HOST", "\"www.xxx.com/api/\"")
        }
    }

java代碼

import com.xxx.xxx.BuildConfig;
public static String SERVER_DOMAIN = BuildConfig.API_HOST;

各個環(huán)境app name修改
src目錄下分別創(chuàng)建各flavor name文件夾,然后創(chuàng)建res->values->string.xml
4.manifest文件中使用占位符

android:authorities="${applicationId}.DataProvider"

5.多版本打包

android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        variant.productFlavors.each { flavor ->
            def project = "xxx"
            def separator = "_"
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def versionName = variant.versionName
            def versionCode = variant.versionCode
            def date = new Date()
            def formattedDate = date.format('yyyyMMdd')

            def apkName = project + separator + "v" + versionName + separator + versionCode + separator + buildType + separator + flavor.name + ".apk"
            if (buildType == "release") {
                apkName = project + separator + "v" + versionName + separator + versionCode + separator + buildType + separator + flavor.name + separator + formattedDate + ".apk"
            }
            outputFileName = apkName
        }
    }
}

運行 gradlew assembleRelease

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容