43 行
2.3 KiB
Markdown
43 行
2.3 KiB
Markdown
|
|
# Android SDK 重构实施接管文档
|
|||
|
|
|
|||
|
|
> 更新时间:2026-07-17
|
|||
|
|
> 分支:`main`
|
|||
|
|
> 发布约束:Maven 制品只允许通过 `https://jenkins.xuqinmin.com/` 发布。
|
|||
|
|
|
|||
|
|
## 当前目标
|
|||
|
|
|
|||
|
|
- `sdk-core` 是配置、会话、网络、文件、时间等公共能力的唯一实现。
|
|||
|
|
- `sdk-update` 只提供更新领域 API;宿主与 RN 桥接不复制下载、校验和安装代码。
|
|||
|
|
- APK 更新必须支持 SHA-256、原子临时文件、进度、取消、有限重试、FileProvider、未知来源安装权限及确定错误码。
|
|||
|
|
- 废弃的离线激活 `sdk-license` 已彻底删除,不得恢复反射初始化或兼容入口。
|
|||
|
|
|
|||
|
|
## 2026-07-17 已完成
|
|||
|
|
|
|||
|
|
- `FileSDK` 新增详细下载进度、SHA-256 与哈希匹配公共 API。
|
|||
|
|
- 下载改为 `.part` 临时文件完成后替换目标文件;HTTP 非 2xx 失败,协程取消会中断连接并清理临时文件。
|
|||
|
|
- `sdk-core` 自动合并 FileProvider,扩展 SDK 不再要求宿主重复声明 provider。
|
|||
|
|
- `sdk-update` 删除无版本 APK 兼容路径和弃用下载入口。
|
|||
|
|
- `sdk-update` 2.0.0-SNAPSHOT 强制要求合法 SHA-256,并提供下载重试、取消、缓存文件复验和确定错误码。
|
|||
|
|
- 增加 Java/RN 可直接使用的 `startDownloadAndInstall`、`UpdateInstallTask`、进度/结果回调和安装权限设置 Intent。
|
|||
|
|
- `sdk-core`、`sdk-update`、`sample-app` 编译通过。
|
|||
|
|
- `sdk-license` 模块、源码、初始化反射、Gradle/Jenkins 参数和架构文档引用已全部删除。
|
|||
|
|
- `sdk-core` 1 个单元测试、`sdk-update` 2 个单元测试通过。
|
|||
|
|
- 修复通知权限检查、MediaStore API 等级和 `java.time` minSdk 24 反向移植,core/update Release Lint 均通过。
|
|||
|
|
|
|||
|
|
## 下一步
|
|||
|
|
|
|||
|
|
1. 补充 Android 仪器测试。
|
|||
|
|
2. 审计 Java 8 对外制品与内部 Java 21 集成边界,完成对应构建门禁。
|
|||
|
|
3. 通过 Jenkins 先发布 `sdk-core` Snapshot,再发布 `sdk-update:2.0.0-SNAPSHOT`。
|
|||
|
|
4. 在 RN SDK Android 宿主中编译并验证下载取消、错误码、权限跳转和安装器唤起。
|
|||
|
|
|
|||
|
|
## 已验证命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
./gradlew :sdk-core:compileReleaseKotlin :sdk-update:compileReleaseKotlin :sample-app:compileDebugKotlin
|
|||
|
|
./gradlew :sdk-core:testDebugUnitTest :sdk-update:testDebugUnitTest :sample-app:compileDebugKotlin
|
|||
|
|
./gradlew :sdk-core:lintRelease :sdk-update:lintRelease :sdk-update:assembleRelease
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不得在开发机执行 Maven 发布。
|