[dev_opt_2.15.0] patch升级代码提交

This commit is contained in:
renwj
2023-03-06 19:50:41 +08:00
parent 91547ae873
commit 3c58608ca6
55 changed files with 2100 additions and 156 deletions

View File

@@ -12,6 +12,8 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.data.deva.scene.SceneTAG
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.function.api.devatools.apm.*
import com.mogo.eagle.core.function.api.devatools.download.*
import com.mogo.eagle.core.function.api.upgrade.*
/**
* 开发套件工具接口
@@ -118,7 +120,7 @@ interface IDevaToolsProvider : IProvider {
/**
* 下载指定包
*/
fun downLoadPackage(downloadKey: String, downloadUrl: String)
fun downLoadPackage(type: DownloadType, downloadKey: String, downloadUrl: String)
/**
* 更新下载进度
@@ -195,4 +197,9 @@ interface IDevaToolsProvider : IProvider {
fun dockerVersion(dockerVersion: String?)
fun apmEnvProvider(): IApmEnvProvider
/**
* 升级相关状态查询
*/
fun upgradeProvider(): IMoGoUpgradeProvider?
}

View File

@@ -0,0 +1,7 @@
package com.mogo.eagle.core.function.api.devatools.download
enum class DownloadType {
APK,
OBU,
PATCH
}

View File

@@ -0,0 +1,35 @@
package com.mogo.eagle.core.function.api.patch
import android.content.Context
import com.alibaba.android.arouter.facade.template.IProvider
import java.io.*
interface IMoGoPatchProvider : IProvider {
/**
* @param context 上下文环境
* @param expectOldApkMd5 服务端返回的旧apk文件的md5
* @param patchSize patch文件大小
* @return true: 本地apk与服务端旧apk版本的md5文件一致; false: 本地apk与服务端旧apk版本md5不一致
*/
fun isPatchAccept(context: Context, expectOldApkMd5: String, patchSize: Long): Boolean
/**
* @param context 上下文环境
* @param patch 已下载文件的patch路径
* @param newApk 合成后文件的文件路径
* @return true: patch与旧apk文件合成成功; false: patch与旧apk文件合成失败
*/
fun applyPatch(context: Context, patch: File, newApk: File): Boolean
/**
* @param context 上下文环境
* @param mergedApk patch合成后的文件路径
* @param expectNewApkMd5 期望合成后文件的md5值
* @return true: md5校验成功; false: md5校验失败
*/
fun checkMd5ForMergedApk(context: Context, mergedApk: File, expectNewApkMd5: String): Boolean
}

View File

@@ -0,0 +1,52 @@
package com.mogo.eagle.core.function.api.upgrade
import com.alibaba.android.arouter.facade.template.IProvider
interface IMoGoUpgradeProvider: IProvider {
suspend fun recordUpgradeRecord(newVersion: String,newMd5: String?, type: Int)
suspend fun recordDownloadStart()
suspend fun recordDownloadFailed(error: String)
suspend fun recordDownloadSuccess()
suspend fun recordInstallStart()
suspend fun recordSourceMd5CheckStart()
suspend fun recordSourceMd5CheckFailed(error: String)
suspend fun recordSourceMd5CheckSuccess()
suspend fun recordInstallApplyPatchStart()
suspend fun recordInstallApplyPatchFailed(error: String)
suspend fun recordInstallApplyPatchSuccess()
suspend fun recordTargetMd5CheckStart()
suspend fun recordTargetMd5CheckFailed(error: String)
suspend fun recordTargetMd5CheckSuccess()
suspend fun recordInstallFailed(code: Int, error: String)
suspend fun isUpgradeSuccessByPatch(): Boolean
suspend fun isUpgradeSuccessByFull(): Boolean
suspend fun getFullUpgradeFailedReason(): Map<String,List<Pair<Int, String>>>?
suspend fun getPatchUpgradeFailedReason(): Map<String,List<Pair<Int, String>>>?
suspend fun removeRecordByTargetVersion(version: String)
suspend fun removeRecordBySourceVersion(version: String)
suspend fun hasUpgradeRecord(): Boolean
suspend fun isNeedGoPatchUpgrade(): Boolean
}