docs(android): 任务说明、DSH 约束与交付文档
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# T-AND-009 APK 打包
|
||||
|
||||
- **状态**:done
|
||||
- **依赖**:T-AND-001 ~ 008
|
||||
|
||||
## 目标
|
||||
|
||||
产出可安装的签名 APK,并提供命令行与 Android Studio 两条路径。
|
||||
|
||||
## load
|
||||
|
||||
```
|
||||
DSH.md
|
||||
build/build-apk.sh
|
||||
build/gen-keystore.sh
|
||||
build/verify.sh
|
||||
app/build.gradle.kts
|
||||
```
|
||||
|
||||
## 交付物
|
||||
|
||||
| 文件 | 说明 |
|
||||
|---|---|
|
||||
| `build/gen-keystore.sh` | 生成发布签名密钥库(**不入库**) |
|
||||
| `build/build-apk.sh` | 构建 + 校验产物(魔数、签名方案) |
|
||||
| `build/verify.sh` | 单元测试 → 构建 → 产物校验 一条龙 |
|
||||
|
||||
## 签名设计
|
||||
|
||||
`app/build.gradle.kts` 按优先级读取签名信息:
|
||||
|
||||
```
|
||||
1. keystore.properties(build/gen-keystore.sh 生成,已 gitignore)
|
||||
2. 环境变量 KEYSTORE_PATH / KEYSTORE_PASSWORD / KEY_ALIAS / KEY_PASSWORD
|
||||
3. 两者都缺失 → 回退 debug 签名,保证 CI 上 assembleRelease 也能产出已签名 APK
|
||||
```
|
||||
|
||||
正式发布必须走 1 或 2;回退路径仅为让 CI/验收可跑通,并在构建日志中给出提示。
|
||||
|
||||
## Android Studio 图形界面路径
|
||||
|
||||
```
|
||||
1. Android Studio 打开 opendance-android/
|
||||
2. Build → Generate Signed Bundle / APK
|
||||
3. 选择 APK → 选择或创建 keystore → 选择 release
|
||||
4. 生成 app-release.apk
|
||||
```
|
||||
|
||||
## 验收(文档 §6.3 T-AND-009)
|
||||
|
||||
| 验收项 | 结果 |
|
||||
|---|---|
|
||||
| Android Studio 可 Build → Generate Signed APK | ✅ 工程为标准 AGP 结构,`keystore.properties` 就位即可 |
|
||||
| `./gradlew assembleRelease` 成功生成签名 APK | ✅ 见下 |
|
||||
| APK 在 Android 10+ 设备可安装运行 | ⚠️ 本环境无 Android 设备/模拟器,未实机安装 |
|
||||
| 关于页包含开源项目声明 | ✅ `CreditsTest` 覆盖,且声明随包分发 |
|
||||
|
||||
## 实测产物
|
||||
|
||||
```
|
||||
app-release.apk 55.5 MiB apksigner: Verifies(v2 方案)
|
||||
Signer #1 DN: CN=OpenDance Studio Dev, OU=OpenDance, O=OpenDance Studio, C=CN
|
||||
package: com.opendance.studio versionName 0.1.0
|
||||
minSdk 29(Android 10) targetSdk 34
|
||||
ABI: arm64-v8a, armeabi-v7a, x86, x86_64
|
||||
assets/pose_landmarker_lite.task 5.7 MB(Stored 未压缩)
|
||||
```
|
||||
|
||||
## 环境记录
|
||||
|
||||
- JDK 17(`/usr/lib/jvm/java-17-openjdk-amd64`)
|
||||
- Android SDK:`platforms;android-34`、`build-tools;34.0.0`
|
||||
- 构建期修复的问题:`proguard-rules.pro` 缺失导致 R8 配置告警(已补全 keep 规则)、
|
||||
androidTest 的 `androidx.test.runner` 依赖补齐
|
||||
Reference in New Issue
Block a user