通过配置applicationId来实现测试包和生产包安装在同一台手机上
概述
开发人员或者测试人员经常需要将测试的内容与生产上的内容对比,用于做一些确认,可是通常情况下在一部手机上不能同时安装测试包与生产包,因为它们的application id 都是一样的,这是android系统的规定。为了达到这个目的,可以通过应用gradle灵活的配置方式来实现,通常有两种实现方式:
1、多渠道打包
通过Product Flavors可以创建不同的产品渠道版本,但每个产品渠道都会有对应的两个构建版本,debug和release,也就是说如果配置了两个Flavor,a和b,则打包时将有四个选择,aDebug, aRelease, bDebug, bRelease, 这当然可以达到我们的目的,不过我个人觉得这种方式有点杀鸡用牛刀的感觉,没这个必要。
2、配置applicationIdSuffix
这种方式是在 BuildTypes 代码块里面配置一个id的后缀,让debug与release版本的 application id 区别开来,这样用最简单的配置就能达到我们的目的。由于两个id都不一样,当然就可以同时装在一台手机上了。下面就来看看具体要怎么配置。
配置细节:
一 在app目录下的build.gradle文件中的buildTypes代码块中添加一个debug代码块
通常新建的项目 buildTypes代码块是像这个样子的:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
现在加上一个debug代码块,并在其中配置一下applicationIdSuffix属性,如下:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
// 在applicationId后面添加了一个后缀形成了debug的包名,与release区分开来
// release版本的applicationId就是defaultConfig里面的applicationId,不需要额外配置
applicationIdSuffix '.abc'
}
}
这里