第一次玩配置构建变体这个东西,真的是巨有意思啊,原来切版本可以这么方便的啊!故事背景是这样的:公司有一个老项目,是把切换环境的功能放到了一个Constant类里面,每次且环境都是改一堆常量,出包也不方便。所以大哥很生气,叫我改成切换build variants的这种形式。这样大哥以后就方便了。。。
准备工作
只是作为演示用,我们只找一下textview然后根据不同环境切换显示内容好了。findviewbyid和settext我就不写了。主要是在app module下面,找到buildTypes,然后更改里面的内容:
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField "String", "TEXT ", '"hello release"'
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField "String", "TEXT ", '"hello debug"'
}
主要用来测试的只有
buildConfigField "String", "TEXT ", '"hello release"'
这一句话而已。用的时候也就是
text.setText(BuildConfig.TEXT);
就行,自动根据环境切换显示内容。(hello debug和hello release)实际开发中的作用我就不多说了。
配置签名
debug版本还好,有AS自动生产的签名,测试用也没啥问题。release就必须有自己的签名了。
好,这一波操作之后就能出包了,而且也有签名文件了。我们还需要添加一点东西。
在项目结构中创建release,把该填的都填上
或者也可以直接在app的module下面,找到signConfigs把这一段加上去
release {
storeFile file('C:\\Users\\jojo\\AndroidStudioProjects\\MyApplication\\my_application_release.jks')
storePassword '111111'
keyAlias = '2222222'
keyPassword '333333'
}
记得填你自己的数据啊。
运行结果
无论是直接出包还是直接运行,结果都还行……只需要然后运行就能看到不同环境的结果了。
写完收工。。。