XuqmGroup-AndroidSDK/sdk-update
XuqmGroup 6d18af496b fix: 移除库模块 isMinifyEnabled 修复 Duplicate class 冲突
Android 库模块开启 isMinifyEnabled=true 时,R8 各自独立混淆,
将内部类重命名为 a.a / a.b 等短名打进 AAR;多个 AAR 合并到 App
时产生 Duplicate class 冲突。

修复:删除全部 7 个库模块 buildTypes.release 中的 isMinifyEnabled,
混淆由 App 的 R8 统一完成。将 proguard-rules.pro 中的保留规则
(manifest 注册类、反射调用入口、dontwarn)合并进各模块的
consumer-rules.pro 随 AAR 打包。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:57:22 +08:00
..
scripts docs(deploy): 添加部署文档和安全设计规范 2026-05-08 18:31:59 +08:00
src/main/java/com/xuqm/sdk/update feat(core): 添加请求签名功能并扩展更新接口 2026-06-19 01:27:56 +08:00
build.gradle.kts fix: 移除库模块 isMinifyEnabled 修复 Duplicate class 冲突 2026-06-23 14:57:22 +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 docs: 添加 CLAUDE.md + 各 module README + sdk-webview JSBridge 补全 2026-06-16 12:14:54 +08:00

sdk-update

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

依赖

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

快速开始

val result = UpdateSDK.checkUpdate(
    appKey = XuqmSDK.appKey,
    platform = Platform.ANDROID,
)

if (result.needsUpdate) {
    UpdateSDK.downloadAndInstall(context, result.downloadUrl)
}

API

API 说明
UpdateSDK.checkUpdate(appKey, platform) 检查 App 更新
UpdateSDK.downloadAndInstall(context, url) 下载 APK 并调起系统安装器

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 触发系统安装
  • AndroidManifest 中已配置 @xml/file_pathsexternal-files-path
  • 支持 WebSocket 实时推送更新通知