多环境部署:主要要与一套代码需要适合不同的应用场景
1、Gradle配置
buildTypes {
//调试版本,无混淆
debug {
minifyEnabled false
signingConfig signingConfigs.release
}
//发布版本,有混淆
release {
minifyEnabled true
//对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。
zipAlignEnabled true
//打包时会删除没有用到的资源
shrinkResources true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
//开发环境
develop {
// 设置一个变量区分不同的版本以作处理,开发中调用BuildConfig.ENV_TYPE可得到值
buildConfigField "int", "ENV_TYPE", "1"
applicationId '替换为开发ID(英文)'
manifestPlaceholders = [
app_name: "开发环境app名称",
app_icon: "开发环境app名称logo"
]
}
//测试环境
check {
buildConfigField "int", "ENV_TYPE", "2"
applicationId '替换为测试ID(英文)'
manifestPlaceholders = [
app_name: "开发环境app名称",
app_icon: "开发环境app名称logo"
]
}
//生产环境
product {
buildConfigField "int", "ENV_TYPE", "3"
applicationId '替换为生产ID(英文)'
manifestPlaceholders = [
app_name: "开发环境app名称",
app_icon: "开发环境app名称logo"
]
}
2、清单文件配置(因为是用到多环境,所以要用到占位符)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.soubu.walledemo">
<application
android:allowBackup="true"
android:icon="${app_icon}"
android:label="${app_name}"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
3、需要单独调试的时候在这里选择不同版本进行调试
4、一次性打包命令:gradle assemble