android中gralde的一些使用总结

一.需求就是如何实现线上环境和开发环境切换不同的接口api?再就是同一台手机如何可以安装开发包和正式包两个包呢?

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"

    defaultConfig {
        applicationId "com.example.servicedemo"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        //这里的名字自定义,不要求大小写
        release {
            // 这里是在 applicationId 中添加了一个后缀。所以『.』要加上
            applicationIdSuffix ".release"
            // 这里的作用是选择是否混淆代码
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
        dev {
            applicationIdSuffix ".dev"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    // 这里是为了不同过的版本设置一些特殊的参数,并不直接和 buildType 关联。
    //例如:使用 buildType 中的 dev 版本,也可以使用 flavors_release 里面设置的自定义参数。这需要自己按照需求制定。
    productFlavors {
        //自定义名字不过不能和上面buildType中相同,不然Gradle编译会不通过。在这里使用了『flavors_』前缀以便区分。
        flavors_release {
            // manifestPlaceholders中写到的『str』,『package_name』不支持用大写,否则Gradle编译会不通过。
            // 这里所设置的变量可以直接使用在『AndroidManifest.xml』中,使用方式为:${package_name}
            // android:label="${package_name}"
            manifestPlaceholders = [str: "releaseStr", package_name: "com.example.servicedemo"]
            // 这里的参数是为了在 java 代码中使用,具体的使用方式为:context.getResources().getString(R.string.strKey);
            resValue("bool", "release", "true")

        }

        flavors_dev {
            manifestPlaceholders = [str: "devStr", package_name: "com.example.servicedemo.dev"]
            resValue("bool", "release", "false")
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值