XuqmGroup-AndroidSDK/sdk-update
2026-07-27 09:46:13 +08:00
..
scripts refactor(sdk): unify configuration and extension lifecycle 2026-07-27 09:46:13 +08:00
src refactor(sdk): unify configuration and extension lifecycle 2026-07-27 09:46:13 +08:00
build.gradle.kts refactor(sdk): unify configuration and extension lifecycle 2026-07-27 09:46:13 +08:00
consumer-rules.pro docs(test): 更新测试报告和文档 2026-05-05 16:06:32 +08:00
proguard-rules.pro fix: 移除库模块 isMinifyEnabled 修复 Duplicate class 冲突 2026-06-23 14:57:22 +08:00
README.md refactor(sdk): unify configuration and extension lifecycle 2026-07-27 09:46:13 +08:00

sdk-update

XuqmGroup Android SDK 更新模块。提供 App 版本检查和 APK 下载安装能力。

依赖

implementation("com.xuqm:sdk-update:VERSION")
implementation("com.xuqm:sdk-core:VERSION")  // 必须

快速开始

val result = UpdateSDK.checkAppUpdate(context)

if (result.needsUpdate) {
    UpdateSDK.downloadAndInstallApk(
        context,
        ApkInstallRequest(result.downloadUrl, result.versionCode, requireNotNull(result.apkHash)),
    )
}

API

API 说明
UpdateSDK.checkAppUpdate(context, bypassIgnore) 检查 App 更新
UpdateSDK.downloadAndInstallApk(context, request, onProgress) 下载、校验并调起系统安装器
UpdateSDK.setLoginUpdateListener(listener) 接收登录后自动补检结果

UpdateResult

data class UpdateResult(
    val needsUpdate: Boolean,
    val versionName: String?,
    val versionCode: Int?,
    val downloadUrl: String?,
    val changeLog: String?,
    val forceUpdate: Boolean?,
)

工作原理

  • downloadAndInstall 将 APK 下载到 getExternalFilesDir(null),通过 FileProvider 触发系统安装
  • 安装所需 FileProvider 由依赖的 sdk-file 唯一声明,Update 不复制 Manifest 或 paths 资源
  • 支持 WebSocket 实时推送更新通知
  • 是否要求登录由租户平台配置决定;要求登录时,未登录检查会静默跳过
  • 账号切换会取消旧会话检查并清理灰度判断缓存,新会话只自动补检一次