[2.15.0][增量升级] 增加本地配置是否支持增量升级并记录此状态

This commit is contained in:
renwj
2023-03-31 16:30:20 +08:00
parent 4a21db3cab
commit fe5616622e
7 changed files with 32 additions and 33 deletions

View File

@@ -54,7 +54,7 @@ class UpgradeAppNetWorkManager private constructor() {
d(SceneConstant.M_BINDING + TAG, "getAppUpgradeInfo mac = $macAddress---type = $type---sn = $sn---versionCode =$versionCode---versionName =$versionName")
val request = UpgradeAppRequest(sn, macAddress, type, versionName, "1")
val requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request))
provider?.recordUpgradeRecord(sn ?: "", macAddress, type)
provider?.recordUpgradeRecord(sn ?: "", macAddress, type, FunctionBuildConfig.isSupportPatchUpgrade)
provider?.recordUpgradeRequestStart()
val info = mUpgradeApiService.getUpgradeInfo(requestBody)
if (info.result != null) {
@@ -79,37 +79,34 @@ class UpgradeAppNetWorkManager private constructor() {
val patchInfo = info.result.patchInfo
var downloadUrl: String = info.result.appUrl
val provider = upgradeProvider()
var isGoFullUpgrade = true
if (patchInfo != null) {
val f1 = FunctionBuildConfig.isSupportPatchUpgrade
if (!f1) {
val isSupport = FunctionBuildConfig.isSupportPatchUpgrade
if (!isSupport) {
Log.d("ApkInstaller", "当前版本配置不支持增量升级...")
}
val f2 = provider != null
if (f1 && !f2) {
Log.d("ApkInstaller", "provider为空...")
}
var f3 = true
if (f2 && provider != null && !provider.isNeedGoPatchUpgrade()) {
Log.d("ApkInstaller", "上次patch升级失败了...")
f3 = false
}
var f4 = true
if (f3) {
provider?.recordUpgradeRecord(patchInfo.targetVersion, patchInfo.targetMd5, 1)
provider?.recordSourceMd5CheckStart()
f4 = isPatchAccept(Utils.getApp(), patchInfo.sourceMd5, patchInfo.patchSize.toLong())
if (!f4) {
Log.d("ApkInstaller", "旧版本apk包的md5与服务端上的md5不匹配...")
provider?.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]")
} else {
provider?.recordSourceMd5CheckSuccess()
} else {
if (provider != null && provider.isNeedGoPatchUpgrade()) {
Log.d("ApkInstaller", "需要走patch升级 -- 1 --")
provider.recordUpgradeRecord(patchInfo.targetVersion, patchInfo.targetMd5, 1)
Log.d("ApkInstaller", "需要走patch升级 -- 2 --")
provider.recordSourceMd5CheckStart()
Log.d("ApkInstaller", "需要走patch升级 -- 3 --")
val accept = isPatchAccept(Utils.getApp(), patchInfo.sourceMd5, patchInfo.patchSize.toLong())
Log.d("ApkInstaller", "需要走patch升级 -- 4 --:$accept")
if (!accept) {
Log.d("ApkInstaller", "旧版本apk包的md5与服务端上的md5不匹配...")
provider.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]")
} else {
Log.d("ApkInstaller", "需要走patch升级 -- 5 --")
provider.recordSourceMd5CheckSuccess()
downloadUrl = patchInfo.patchDownloadUrl
addPatchInfo(patchInfo)
isGoFullUpgrade = false
}
}
}
if (f4) {
downloadUrl = patchInfo.patchDownloadUrl
addPatchInfo(patchInfo)
}
} else {
}
if (isGoFullUpgrade) {
provider?.recordUpgradeRecord(info.result.versionName, null, 0)
}
withContext(Dispatchers.Main) {

View File

@@ -5,7 +5,6 @@ import android.content.pm.PackageInstaller
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.deva.chain.*
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion
import com.mogo.eagle.core.function.api.upgrade.*
import com.mogo.eagle.core.utilcode.util.*
import com.zhjt.mogo_core_function_devatools.upgrade.provider.db.UpgradeDbHelper
@@ -25,8 +24,8 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider {
override fun init(context: Context?) {}
override suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?) {
val record = Record(AppUtils.getAppVersionName(), sn, mac, type, time = System.currentTimeMillis())
override suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?, isSupportPatch: Boolean) {
val record = Record(AppUtils.getAppVersionName(), sn, mac, type, isSupportPatch, time = System.currentTimeMillis())
UpgradeDbHelper.insertRecord(record)
try {
onUpgradeRecordLinkLog(mapOf("upgrade_start" to GsonUtils.toJson(record)))

View File

@@ -12,6 +12,7 @@ data class Record(
var sn: String,
var mac: String,
var type: String?,
var isSupportPatch: Boolean,
var time: Long = 0L
)

View File

@@ -76,6 +76,7 @@ rootProject.gradle.taskGraph.whenReady { TaskExecutionGraph graph ->
}
if (app != null) {
def android = (AppExtension) app.extensions.findByName("android")
android.defaultConfig.buildConfigField("boolean", "IS_SUPPORT_PATCH_UPGRADE", rootProject.hasProperty("PATCH_UPGRADE_SUPPORT") ? rootProject.properties["PATCH_UPGRADE_SUPPORT"] : false)
def signConfig = android.signingConfigs.getByName("release")
if (signConfig != null && isOnlineReleaseBuild(gradle)) {
if (tasks != null) {