|
|
1 settimana fa | |
|---|---|---|
| .. | ||
| android-capacitor | 1 settimana fa | |
| public | 1 settimana fa | |
| src | 1 settimana fa | |
| .gitignore | 1 settimana fa | |
| README.md | 1 settimana fa | |
| capacitor.config.ts | 1 settimana fa | |
| package-lock.json | 1 settimana fa | |
| package.json | 1 settimana fa | |
| postcss.config.cjs | 1 settimana fa | |
| printer.html | 1 settimana fa | |
| tailwind.config.cjs | 1 settimana fa | |
| tsconfig.json | 1 settimana fa | |
本目录是 Mini7-One 上位机的 Capacitor Android Pad 工程,直接复用桌面端 src/renderer 下的 React 页面、路由、国际化和样式。
src/bridge.ts 提供兼容的 window.api 和 window.electron。android-capacitor。Mini7Plugin.java 监听 UDP 9090,TCP 从 8001 开始占用可用端口,并向 React 发送设备事件。@capacitor-community/sqlite,任务、用户、医生、项目参数、结果、设备档案和计时器均读写 Pad 本地数据库。cd mobile-app
npm install
npm run build:web
npm run build:web:oem
build:web:构建普通版网页资源。build:web:oem:构建 OEM 版网页资源。普通版与 OEM 版由打开 Android Studio 前最后一次同步的网页资源决定。
在项目根目录 D:\workspace\Mini7-PC-eTrust-desktop 执行:
# 普通版
npm --prefix mobile-app run sync
# OEM 版
npm --prefix mobile-app run sync:oem
# 打开 Android Studio
npm --prefix mobile-app run open
如果终端当前位于 mobile-app\android-capacitor,应使用父目录作为 npm 项目:
# 普通版
npm --prefix .. run sync
# OEM 版
npm --prefix .. run sync:oem
不要在 android-capacitor 目录执行 npm --prefix mobile-app ...,否则 npm 会错误查找 android-capacitor\mobile-app\package.json。
同步完成后,在 Android Studio 中选择 app、已连接的 Android Pad,然后点击 Run。Android Studio 会编译并安装最后同步的普通版或 OEM 版。两版使用同一个 Android 包名,安装时会互相覆盖。Pad 与仪器必须处于同一局域网。
cd mobile-app
npm run build:apk
npm run build:apk:oem
也可以在项目根目录执行:
npm run build:pad
npm run build:pad:oem
APK 输出到 mobile-app/dist:
Mini7-One-Pad-1.6.21.1-standard-debug.apk
Mini7-One-Pad-1.6.21.1-oem-debug.apk
普通版与 OEM 版使用同一个 Android 包名,安装时会互相覆盖;OEM 标识在构建阶段写入网页资源,不依赖运行时设置。
首次构建会下载 Gradle 8.14.3、Android NDK 27.0.12077973 和 CMake 3.22.1,网络较慢时耗时较长。
已完成:
window.api 移动端兼容层。pcr.exe 或网络服务。Android 平台明确不提供:
未支持的 Android API 会返回明确错误,不再伪造空结果或成功状态。
Pad 启动后默认检查以下地址:
普通版:http://onechip-mini7.com/mini7-one-mobile/standard/latest.json
OEM 版:http://onechip-mini7.com/mini7-one-mobile/oem/latest.json
生成普通版或 OEM 版更新文件:
cd mobile-app
npm run prepare:update
npm run prepare:update:oem
生成结果位于:
mobile-app/dist/update/standard/
mobile-app/dist/update/oem/
每个目录都包含 latest.json、APK 和 SHA256 文件。将目录内的全部文件上传到服务器对应目录,不要只上传 APK。
Windows Nginx 示例:
location ^~ /mini7-one-mobile/ {
alias D:/mini7/mini7-one-mobile/;
autoindex off;
add_header Cache-Control "no-cache" always;
}
服务器目录结构:
D:/mini7/mini7-one-mobile/
├── standard/
│ ├── latest.json
│ ├── Mini7-One-Pad-1.6.21.2-standard.apk
│ └── Mini7-One-Pad-1.6.21.2-standard.apk.sha256
└── oem/
├── latest.json
├── Mini7-One-Pad-1.6.21.2-oem.apk
└── Mini7-One-Pad-1.6.21.2-oem.apk.sha256
发布新版本时必须同时递增 android-capacitor/app/build.gradle 中的 versionCode,并修改 versionName 及 mobile-app/package.json 的显示版本。例如 1.6.21.2 使用 mobile-app/package.json 的 1.6.21-2、versionName "1.6.21.2" 和大于旧版的 versionCode 1062102。新旧 APK 必须使用相同的 applicationId 和签名证书。首次安装更新时,Android 会要求用户允许 Mini7-One 安装未知应用。
当前构建脚本生成 debug 签名 APK,适合连接的测试 Pad。正式发布前应配置固定的 release keystore;已经安装 debug 版的 Pad 不能直接覆盖为另一证书签名的 release 版,需要先卸载 debug 版再安装正式版。
原生拟合使用 CMinpack(MINPACK 的 C/C++ 实现),其许可证随源码保存在 android-capacitor/app/src/main/cpp/third_party/cminpack/CopyrightMINPACK.txt。本产品包含由芝加哥大学作为阿贡国家实验室运营方开发的软件。