wordpress流量,seo网站,个人网站设计分类,iis打开网站变成下载项目需求
在一个设备上安装两个一样的程序app
需求解决
我们知道每一个app都有一个包名的#xff0c;如果一个app在Android设备上安装之后#xff0c;再安装这个app的话会进行覆盖安装#xff0c;因为他们两个的包名是一样的#xff0c;默认是一个app。
但是我们现在需…项目需求
在一个设备上安装两个一样的程序app
需求解决
我们知道每一个app都有一个包名的如果一个app在Android设备上安装之后再安装这个app的话会进行覆盖安装因为他们两个的包名是一样的默认是一个app。
但是我们现在需要将这一个app多次安装在一个Android设备上那需要怎么实现这个需求呢
实现这个需求的话需要修改包名我们可以使用productFlavors进行变体的构建和打包这样的话我们就可以将同一个app打包成不同包名的apk文件这样就可以在一个Android设备上进行多次安装了。 Product Flavors允许开发者创建不同的应用版本每个版本可以有不同的应用ID、版本名称、资源等。常见的用法包括
免费版与付费版不同功能集地区版本
每个变体都可以有不同的配置包括代码、资源和依赖项。
例如在这个项目里面 我们可以构建两个资源文件目录 在和【res】同级别的目录下创建【res-flavors】文件夹在这个文件下面创建两个文件夹【compass】和【wireless】两个资源文件夹在里面放我们需要区别的文字、图片等资源但是要注意资源对应的名字是要相同的资源可以不同。
接下来我们去【build.gradle】文件里面去构建我们的变体。
android {compileSdkVersion 24buildToolsVersion 24.0.1defaultConfig {applicationId com.example //原包名minSdkVersion 19targetSdkVersion 24versionCode 1versionName v releaseTime()}compileOptions {encoding GBK}lintOptions {abortOnError false}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.pro}}applicationVariants.all { variant -variant.outputs.all { output -def flavorName variant.flavorNameif (flavorName compass) {outputFileName xx校正仪.apk // 为 compass flavor 设置文件名} else if (flavorName wireless) {outputFileName xxxxxxxx校验仪.apk // 为 wireless flavor 设置文件名} else {outputFileName xx校正.apk}}}flavorDimensions defaultproductFlavors {compass {applicationId com.ble.compassversionName version compass 1.0}wireless {applicationId com.ble.wirelessversionName version wireless 1.0}}sourceSets {compass.res.srcDirs [src/main/res-flavors/compass]wireless.res.srcDirs [src/main/res-flavors/wireless]}}static def releaseTime() {return new Date().format(yyyMMdd_HHmm, TimeZone.getTimeZone(GMT08:00));
}在这里面 sourceSets {compass.res.srcDirs [src/main/res-flavors/compass]wireless.res.srcDirs [src/main/res-flavors/wireless]}是资源文件目录指向的位置就是我们之前创建的文件地址。 productFlavors {compass {applicationId com.ble.compassversionName version compass 1.0}wireless {applicationId com.ble.wirelessversionName version wireless 1.0}}这两个就是我们创建的两个变体里面设置了相应的变体的包名和版本名字。 applicationVariants.all { variant -variant.outputs.all { output -def flavorName variant.flavorNameif (flavorName compass) {outputFileName xx校正仪.apk // 为 compass flavor 设置文件名} else if (flavorName wireless) {outputFileName xxxxxxxx校验仪.apk // 为 wireless flavor 设置文件名} else {outputFileName xx校正.apk}}}这一部分就是在输出我们构建好的apk文件的名字这样我们在进行构建apk文件之后就会根据相应的变体显示相应的名字。 通过这样设置之后【build】构建一下然后我们在进行apk文件打包的时候就可以选择相应的版本了。