docs: 消除 Gitea 模棱两可 Unicode 告警(全角标点紧邻 ASCII 时改为半角)

依据 Gitea v1.27.3 modules/charset/escape_stream.go 的判定规则
(analyzeDetectResults:仅当左右相邻字符都不是非 ASCII 时才标记,
且 _common 表恒定生效),把说明文档中会被标记的全角标点
(,:;?!() 等)改为半角,并保证成对括号宽度一致。
中文语境中的全角标点(左右均为中文)保持原样,不动代码与契约语义。
This commit is contained in:
opendance
2026-09-15 21:45:51 +08:00
parent ab88231ea0
commit 68783c37b6
18 changed files with 147 additions and 147 deletions
+17 -17
View File
@@ -18,7 +18,7 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
方式二:用 adb 安装
adb install -r app-release.apk
要求:Android 10(API 29)或更高版本。
要求:Android 10(API 29)或更高版本。
--
二、初次部署(从零跑起来)
@@ -32,7 +32,7 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
JDK 17 或更高 AGP 8.7.3 要求,构建脚本会校验主版本 >= 17
Gradle 8.9 仓库自带 gradlew,本机无需另装
Android SDK platforms;android-34 与 build-tools;34.0.0
compileSdk 34 / minSdk 29(Android 10+)/ targetSdk 34
compileSdk 34 / minSdk 29(Android 10+)/ targetSdk 34
设备 需要真机(Android 10 及以上、带摄像头)
真机与模拟器:
@@ -58,7 +58,7 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
生成 keystore/opendance-release.jks 与 keystore.properties(含 storeFile、
keyAlias 与两个口令字段)。请自行备份,且不要提交。
取值优先级:keystore.properties -> 环境变量(KEYSTORE_PATH /
KEYSTORE_PASSWORD / KEY_ALIAS / KEY_PASSWORD)-> 回退 debug 签名
KEYSTORE_PASSWORD / KEY_ALIAS / KEY_PASSWORD)-> 回退 debug 签名
(仅供 CI 产出已签名 APK,正式发布必须自备 keystore)。
3) 首次构建
@@ -70,7 +70,7 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
bash build/build-apk.sh release # 仅 release
bash build/build-apk.sh all # 两者都构建(含产物校验)
或直接用 Gradle:
或直接用 Gradle:
./gradlew assembleDebug
./gradlew assembleRelease
@@ -93,15 +93,15 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
5) 配置与联通
本 App 只连接 Windows 客户端,不访问 Web 服务端。
地址来自 AppSettings.webSocketUrl():ws://<host>:<port>/pose
地址来自 AppSettings.webSocketUrl(): ws://<host>:<port>/pose
子协议 opendance.pose.v1。
连接页字段与默认值(见 data/AppSettings.kt):
IP 地址 host 默认是 RFC 5737 文档网段占位地址
(源码为 192.0.2.100,非真实主机)
端口 port 8765
目标帧率 targetFps 30(5~60)
分辨率 resolution 640x480(可选 480x360 / 1280x720)
目标帧率 targetFps 30(5~60)
分辨率 resolution 640x480(可选 480x360 / 1280x720)
镜像画面 mirror 开
仅上半身模式 upperBodyOnly 关
@@ -115,7 +115,7 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
6) 第一次跑通
手机与电脑连同一局域网 -> 电脑启动 Windows 客户端(监听 8765)->
手机与电脑连同一局域网 -> 电脑启动 Windows 客户端(监听 8765)->
App 填地址并测试连接 -> 点「开始推流」并授予相机权限 -> 站到画面中央。
成功标志:
@@ -132,8 +132,8 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
报告:app/build/reports/tests/testDebugUnitTest/index.html
bash build/build-apk.sh all
预期:debug 与 release 均显示 "OK ... APK",release 显示
"已签名(APK Signature Scheme v2)"
预期:debug 与 release 均显示 "OK ... APK", release 显示
"已签名(APK Signature Scheme v2)"
$ANDROID_HOME/build-tools/34.0.0/apksigner verify app/build/outputs/apk/release/app-release.apk
预期:退出码 0(无输出即通过)
@@ -154,7 +154,7 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
Q: 点「开始推流」闪退(或提示 MediaPipe 初始化失败)
A: MediaPipe 原生库加载 / 静态初始化失败抛出的是 Error 子类
(UnsatisfiedLinkError、ExceptionInInitializerError),不是 Exception;
(UnsatisfiedLinkError、ExceptionInInitializerError),不是 Exception;
常见诱因是 ABI 不匹配(例如把只含 arm 的 release 包装到 x86 模拟器)
或模型资源缺失。处理:改用与设备 ABI 匹配的包(真机用 release、
模拟器调试用 debug);确认 APK 内含 assets/pose_landmarker_lite.task。
@@ -167,7 +167,7 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
--
1. 在 Windows 电脑上启动 OpenDance Studio 客户端
(Windows 客户端会自动监听 8765 端口)
(Windows 客户端会自动监听 8765 端口)
2. 确保手机与电脑连在同一个 WiFi
@@ -193,9 +193,9 @@ WebSocket 推送给 Windows 客户端,由后者驱动 VRM 角色并实时评
--
分辨率
低(480x360) 最省电,适合老机型
中(640x480) 推荐,识别精度与功耗平衡
高(1280x720) 最清晰,但推理更慢、更耗电
低(480x360) 最省电,适合老机型
中(640x480) 推荐,识别精度与功耗平衡
高(1280x720) 最清晰,但推理更慢、更耗电
目标帧率
默认 30 FPS。低端机若「识别帧率」明显低于目标值,可降到 20 或 15。
@@ -302,8 +302,8 @@ Android Studio 路径:
gradle/wrapper/ Gradle 8.9 wrapper
project.yaml 任务清单与状态
DSH.md 本项目 DSH 执行约束
tasks/ 单任务说明书(T-AND-001 ~ 009)
contracts/ 只读契约快照(来源 opendance-web v0.1.0)
tasks/ 单任务说明书(T-AND-001 ~ 009)
contracts/ 只读契约快照(来源 opendance-web v0.1.0)
app/src/main/java/com/opendance/studio/
MainActivity.kt 三页导航
model/ 239 字节帧编解码 + 33 点拓扑