安卓差异化打包是为了一个项目生成多个app,可以在一部手机同时运行。
- 在gradle文件中增加如下代码
android{
defaultConfig {
//差异化打包
multiDexEnabled true
flavorDimensions "versionCode"
}
//差异化打包
productFlavors {
//测试版
beta {
applicationIdSuffix ".beta"
}
//稳定版
stable {
}
}
//下面是设置打包输出apk文件名
android.applicationVariants.all {
variant ->
variant.outputs.all {
//这里修改apk文件名
outputFileName = "my-app-${productFlavors[0].name}-${releaseTime()}.apk"
}
}
}
//获取日期
static def releaseTime() {
return new Date().format("MMdd", TimeZone.getTimeZone("UTC"))
}
- 在src目录下新增文件夹beta,stable,分别在里面新增资源文件,存放各个版本的app名字
例如beta资源目录的strings.xml文件
<resources>
<string name="app_name">app beta版</string>
</resources>
- 如果用到 Fileprovider(内容提供者)
需要这样设置,主要是修改authorities
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>