openGym Android APK 如何安装?不上 Play 商店的开源健身应用完整指南
【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym
不想让训练记录存进别人的服务器?openGym 是一款可自托管的开源健身与体重记录应用,Android 版以官方签名的 APK 直接分发、故意不上架 Play 商店。本文带你完成从下载校验到配对服务器的全流程,并说清楚这种"无商店"设计的取舍。
✅ 30 秒自查:这应用适不适合你
openGym 的定位是一句话:Your training. Your data. Your server.先对号入座,再决定装不装。
适合你,如果你:
- 想 100% 掌控自己的训练数据,愿意把数据放在自己的服务器
./data目录,或者干脆只留在手机里 - 不需要服务器和账号也能用:纯本地模式下无登录页、无同步、无遥测
- 在意长期免费:AGPL-3.0 开源,无订阅、无广告、无付费墙
- 想迁移 FitNotes、Strong、Hevy 的历史记录,或看重 1300+ 动作库(带动画演示)、周计划、休息计时器、肌群疲劳图
不适合你,如果你:
- 只习惯在 Play 商店点"安装",不想手动装 APK
- 用的是 iPhone,又想要原生应用(Apple 不允许商店外安装,iPhone 用户更推荐 PWA 方案,见文末 FAQ)
📥 不上商店的安装路径:从下载到启动
整个流程不到两分钟,不需要电脑。
必做:
- 从官方渠道(官网下载页、包注册表、Releases 等)下载最新版
openGym-<version>.apk——几个官方渠道放的是同一个文件 - 首次安装时 Android 会提示"允许来自此来源的应用",为对应浏览器/安装器授权即可,这是所有非商店应用的标准流程
- 安装后桌面会出现 openGym 图标,首次启动会询问你的使用方式(纯本地 / 连接自己的服务器)
可跳过:
- 同时下载旁边的
.sha256校验文件:官方每个版本都附带它,任何人可独立验证完整性;从非官方渠道拿到文件时,用任意 SHA-256 工具比对一下再装
两个容易忽略的点:官方发布版 APK 仅包含 ARM 架构(arm64-v8a、armeabi-v7a),覆盖市面上几乎所有真机;APK 由 CI 自动构建、签名、发布,你装的就是可校验的官方产物。
⚖️ 无商店设计:你得到什么、失去什么
官方在 docs/MOBILE.md 里把话说得很直白:no store accounts, no store rules, no yearly fees between you and an open-source app.另外 AGPL-3.0 与商店服务条款天然冲突,虽然 NOTICE.md 提供了商店分发例外条款,但走商店审核本来就不是项目想要的分发方式。
| Play 商店 | openGym | |
|---|---|---|
| 安装 | 一键点击 | 手动装 APK + 允许未知来源 |
| 账号与规则 | 开发者账号、商店规则、每年费用 | 无账号、无规则、每年费用为零 |
| 分发 | 商店审核后上架 | CI 构建、签名、发布,附带.sha256 |
| 更新 | 商店推送 | 应用内置自动更新 |
| 许可证 | 与 AGPL-3.0 难以兼容 | AGPL-3.0 完全开源 |
丢失的其实不多。更新体验并不比商店差:打开设置时会检查最新版本(每次应用会话只查一次,不扰民);发现新版本后直接下载新 APK,先做文件大小检查(小于100 KB直接判定无效),再计算 SHA-256 与官方哈希比对,不一致会报 "download may be corrupted or tampered with" 并中止;校验通过后调用系统安装器直接覆盖旧版本。
📱 两种用法:纯本地,或连上自己的服务器
先给选择建议:没有服务器就选纯本地,数据只存在手机;已有一台跑着 openGym 的服务器(docker compose up即可,见 docs/SELF_HOSTING.md),就选配对,把手机变成它的一个客户端。
配对流程(bearer token 方式,而非 Cookie——手机 WebView 的域名与 WebAuthn 要求不匹配,所以用不了 Passkey):
- 在已登录的浏览器里打开 Settings → "Pair the mobile app",页面生成一个5 分钟有效的一次性配对码
- 在 App 的首次启动页(或 Settings → "Connect to my server")输入服务器地址 + 配对码,完成绑定
之后你得到:
- 离线照常记录,恢复网络后自动同步到服务器
- token 默认90 天过期并自动续期,常用的手机永远不会掉线
- 建议用 HTTPS 地址,否则 token 会以明文过网络
🗄️ 数据资产清单:存在哪、怎么备份、怎么删
| 使用模式 | 数据位置 |
|---|---|
| 纯本地 | 手机应用私有目录opengym-state.json(每次变更都会写盘) |
| 配对自托管服务器 | 你的服务器./data目录,备份该目录即备份一切 |
- 开启 Settings → Auto-backup on changes 后,每次完成训练会在手机
Documents/openGym/生成带日期的 JSON 备份:每天一份,自动只保留最新 14 份,可直接交给 Syncthing 或云盘同步 - 想连照片/视频一起导出?走系统分享面板,生成一个带全部媒体的 ZIP
- 想删数据?Settings → Data 里随时导出/清除,没有任何第三方副本
🛠️ 开发者向:两条命令构建自己的 APK
Android 工程位于 frontend/android/。构建前先在frontend目录装好依赖,然后:
cd frontend && npm run build:mobile cd android && ./gradlew assembleRelease⚠️签名必须始终使用同一把密钥:首次签名需要生成自己的 keystore 并用
zipalign+apksigner处理,之后升级若换了密钥,Android 会直接拒绝覆盖安装。完整流程见 docs/MOBILE.md。
💬 常见顾虑快问快答
Q:iPhone 能用吗?不能装原生 APK。推荐自托管后用 Safari"添加到主屏幕"(完整 PWA,支持离线 + 同步),或用 Xcode 免费签名装机(7 天续期)。详见 docs/MOBILE.md。
Q:会不会偷传数据或耗电?不会。默认安装不调用任何 AI 服务,无遥测;仅首次启动会从数据集下载一次动作图片/动画。AI 教练和 MCP 服务都是管理员可选项,默认关闭。
Q:从 FitNotes / Strong 迁移要多久?应用内导入向导支持 FitNotes、Strong、Hevy 直接导入(CSV 或 API Key),体重数据还支持 Apple Health 导出文件,见 docs/DATA_IMPORTS.md。
Q:动作库够用吗?1300+ 个动作带动画演示,还有超级组/热身组/力竭组、休息计时器、力量进展规则。
Q:多个人能共用一台服务器吗?可以。每人建自己的 profile,只看自己的数据,详见 docs/SELF_HOSTING.md。
一句话给决策:没有服务器就直接装 APK 走纯本地模式,数据留在手机;已经有自托管服务器的话,多花一分钟输入配对码,换回三端同步和永不掉线的连接。
【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考