Android中的产品配置
我对产品的口味是完全陌生的,我已经通过许多链接来理解它。但仍有一些疑问尚不清楚。我有3种产品风格,即:qa、dev和prod。我只创建了这三种产品风格,因为我需要更改不同风格的URL和一些API键,我通过创建3个不同的软件包并将相同的Java文件(URL文件位于app/src目录中)来完成。这就是我的身材,格雷德尔。我需要在每种口味中添加哪些强制性的东西?与以下内容相关的内容:proguard、signingConfigs:Android中的产品配置,android,android-gradle-plugin,android-productflavors,Android,Android Gradle Plugin,Android Productflavors,我对产品的口味是完全陌生的,我已经通过许多链接来理解它。但仍有一些疑问尚不清楚。我有3种产品风格,即:qa、dev和prod。我只创建了这三种产品风格,因为我需要更改不同风格的URL和一些API键,我通过创建3个不同的软件包并将相同的Java文件(URL文件位于app/src目录中)来完成。这就是我的身材,格雷德尔。我需要在每种口味中添加哪些强制性的东西?与以下内容相关的内容:proguard、signingConfigs: 产品风格的工作方式是,每个维度中的风格数乘以构建类型数,在您的情况下,
产品风格的工作方式是,每个维度中的风格数乘以构建类型数,在您的情况下,单个维度中有3种风格,2种构建类型,最终得到3x2=6种构建变体,如下所示: qaDebug qaRelease 产品调试 产品发布 德夫德布格 德夫雷莱斯 每个组合都是相关产品风格配置和相关构建类型配置的实际组合。对于变量qaDebug来说,它的配置来自qa下定义的和debug下定义的。因此,如果debug已经定义了proguard文件,那么通常不需要在qa中定义它,除非qa需要为自己的代码配置额外的proguard,那么这是一个需要决定的不同问题,因此proguard应该针对每种风格定义,而不是在构建类型中定义 我想指出的另一个方面是signingConfig,这里为prod和release定义了相同的值。这意味着以prod开头或以Release结尾的任何组合都将具有signingConfig集,在本例中为:QALESE、prodDebug、PRODRESLEASE和devRelease
因此,配置实际上取决于您的选择和设计,并非所有项目都具有相同的配置。您没有说明您的问题,您的问题非常模糊。强制性可能是非常主观的,取决于很多方面。我只是试图产生3种产品口味。我是否需要为这些口味单独定义proguard规则文件?或者,在gradle的每种产品口味中,我都缺少什么可以补充的吗@这是不推荐使用的代码。你应该使用像okhttp或更好的libs,我想是的,我几年前就用过它了,它很适合简单的使用。但如果你能习惯于改型,那么如果你想改进的话,这将是清洁代码的一个良好开端。一旦你习惯了,它就会震动cf:如果你使用截击,我不认为ApacheLib是相关的没有问题,但我从我们的链接得到404谢谢你。我消除了疑虑。所以我甚至不需要在我的产品风格中加入signingConfig。因为默认情况下,release buildType拥有它。
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 26
buildToolsVersion '26.0.2'
flavorDimensions "default"
defaultConfig {
applicationId "com.sagar.demo"
minSdkVersion 21
targetSdkVersion 25
multiDexEnabled true
versionCode 67
versionName "1.0.0" //Update Version build number
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
}
}
signingConfigs {
release {
storeFile file("myKeystore")
storePassword "Keystore2017"
keyAlias "SagarSuri"
keyPassword "Keystore2020"
}
}
buildTypes {
debug {
debuggable true
minifyEnabled false // shrink
useProguard false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
debuggable false
minifyEnabled true
useProguard true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
productFlavors {
qa {
dimension "default"
}
prod {
dimension "default"
signingConfig signingConfigs.release
}
dev {
dimension "default"
}
}
}