Files
opendance-android/tasks/009-build-apk.md
T
zijunchiang 264786134c docs: 新增「初次部署(从零跑起来)」;去混淆字符与真实内网信息
- README.md / README.txt 新增初次部署章节:前置条件(JDK 17 / SDK 34 / Gradle 8.9)、
  获取代码与本地配置(local.properties 不入仓)、Debug/Release 构建、装到手机与相机权限、
  连接配置(只连 Windows 客户端,默认 8765 / /pose)、第一次跑通、自检清单、常见问题
- 单测数量按实际(30 项)修正
- 三库同源契约:':=' 写法修回、去掉真实 MariaDB 版本串
- 全文去除易被 Gitea 判为「模棱两可 Unicode」的字符
- 本机 JDK 路径与内网示例地址改占位符 / RFC 5737 文档网段
2026-09-15 21:33:27 +08:00

2.3 KiB
Raw Blame History

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(本地安装路径,示例 <JDK 17 路径>)
  • Android SDK:platforms;android-34、build-tools;34.0.0
  • 构建期修复的问题:proguard-rules.pro 缺失导致 R8 配置告警(已补全 keep 规则)、 androidTest 的 androidx.test.runner 依赖补齐