文件

110 行
7.9 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 蟹蟹输入 · RTOS / Android 手表适配改版
为小屏手表准备的离线输入组件:大按键、浅色界面、完整候选、圆屏安全布局。基于 [CrabKeyboard / 蟹蟹输入](https://github.com/crabPangXie/crabKeyboard) 的词库,由 herry 重写 Glyphix RTOS 与原生 Android 适配;本项目为独立改版,保留原作者及第三方署名。
**MIT 开源,允许商用、修改、再分发和闭源集成。** 使用时请保留 [LICENSE](LICENSE) 和 [第三方许可](NOTICE.md)。厂商 SDK、运行时与设备固件不包含在本项目授权中。
![1.2.5 RTOS原生测试工程界面,验证范围见截图说明](docs/UI_PREVIEW.png)
## 1.2.5 减少内存、加速查词与等大26键
- RTOS运行索引91,357→2,158 B,缓存3分片/48,000字符;去掉整份词库复制,隐藏释放缓存,过期查询停止后续工作。
- 候选按需分页,首页只更新3项,展开才创建整数页计划,只生成当前页;RTOS反应式字段40→29。Android取消过期SQLite、后台规划候选页,文字变化复用键盘布局。
- 26字母统一宽高并放大,标准10/9/7三排,方屏利用全宽,圆屏同步调整留白、候选与底栏。保留光标贴合和大写/小写切换。
同一词库、24种全拼/九宫/14键编码,5轮共120次查询:总耗时 227.12 → 194.87 ms,P95 6.70 → 5.01 ms,中位数 1.01 → 1.07 ms;GC后保留堆 1,149,800 → 805,848 B。总耗时减少14.2%,P95减少25.2%,保留堆减少29.9%。中位数略增,不能称所有输入都提速。
这是Windows Node/V8的对比,数值随主机负载变化;不是Glyphix MCU/真实手表的内存、帧率或触控延迟。原始报告及执行脚本随源码/验收ZIP提供。
RTOS **59项引擎、49项UX、同步检查及四配置构建通过**,独立原生组件四配置**96状态/96截图通过**,26键等大、模式和底部控件边界合格,各配置实际输入qQq。24种编码的完整候选及补全与1.2.4一致,12,000候选分页顺序完整。
Android **8项Java、7项OWW261后台离屏组件回归通过**:原生绘制、24次文字更新只创建一次布局、补全/续词、密码隔离、大小写点击、圆方/192px尺寸等大键和边界、查询取消/恢复。16个运行时class与发布AAR相同;正式签名APK/AAR、API27和zipalign通过。
这是组件回归,不替代最终APK的前台整包验收。最终Android APK未安装到共享手表,原9项前台交互及RTOS原84项整包交互未重跑。RTOS截图来自明确标记的原生测试工程,Android截图为历史资料;RTOS真机、长期性能/功耗及商店审核未验收。
[本版RTOS验收](com.sydxky.rtos.inputmethod/VALIDATION_1.2.5.md) · [本版Android验收](android/VALIDATION_1.2.5.md)
## 1.2.0 已有功能
- 完整候选采用 **4×4 网格,单字 16 项一页**;词组占用更多列,长词增加行高,显示完整文字;展开页不显示拼音。
- 标准 **QWERTY 26 键**,排列为 `qwertyuiop / asdfghjkl / zxcvbnm`;同时提供九宫和 14 键双字母模式。
- 14 键为 `QW ER TY UI OP / AS DF GH JK L / ZX CV BN M`,参考公开布局,自行实现离线消歧和连续输入;[算法说明](com.sydxky.rtos.inputmethod/KEYBOARD_14.md)。
- 保留全部 **104,837 组拼音/缩写索引、163,238 个候选项**。按页浏览全部结果,支持分段选词及剩余编码继续输入。
- 英文、数字、符号、光标移动及 Unicode 删除。圆屏每行按安全宽度排布,避免四角按钮被裁切。
- 新增 **Android 应用内键盘 AAR**、演示 APK、独立宿主示例。接入后点击输入框自动弹出,由组件直接回填宿主输入框。
## 选择适合的平台
| 平台 | 接入与产物 | 已完成的验证 |
| --- | --- | --- |
| Glyphix RTOS | 原生 `.ux` 页面;圆屏 466×466、方屏 390×450 两屏 QuickApp 完整 ZIP | 普通/QuickApp四配置构建;59项引擎和49项UX;独立原生组件四配置96状态/截图通过 |
| Android 8.1 / API 27+ | 原生 AAR;演示 APK;独立 `host/` 示例 | OWW261后台原生组件7项通过;24帧非空绘制、布局复用、等大键及查询取消;前台交互未重跑 |
Android 版本作为**应用内公开组件**,由每个应用自行接入;组件不注册系统输入法。RTOS 页面也需宿主接入,系统级注册依赖厂商支持。
完全离线,输入功能无需账号。Android 组件不申请网络/外部存储/悬浮窗权限,不保存输入内容;RTOS 端的可选本地学习、私密模式及草稿说明见 [隐私说明](com.sydxky.rtos.inputmethod/PRIVACY.md)。
## 下载、源码与反馈
- [v1.2.5 发行包与更新说明](https://git2.sydxky.cn/sydxky/crab-input-rtos/releases/tag/v1.2.5):AAR、演示 APK、两屏 RTOS QuickApp、原生组件验收记录/截图及 SHA-256。
- [Android 接入文档](android/README.md) · [RTOS 接入文档](com.sydxky.rtos.inputmethod/README.md)
- [实际界面截图](docs/SCREENSHOTS.md) · [RTOS 验收](com.sydxky.rtos.inputmethod/VALIDATION_1.2.0.md) · [Android 真机验收](android/VALIDATION_1.2.0.md)
- [已有问题](https://git2.sydxky.cn/sydxky/crab-input-rtos/issues) · [免注册提交问题与建议](https://git2.sydxky.cn/feedback/sydxky/crab-input-rtos)
Git2 免登录浏览、克隆和下载;当前关闭注册,代码和版本由所有者维护。
```sh
git clone https://git2.sydxky.cn/sydxky/crab-input-rtos.git
```
## Android 开发
准备 JDK 17、Android SDK compile 37、Python 3;SDK 与签名私钥不随源码分发。
```powershell
cd android
python scripts/build-dictionary.py
.\gradlew.bat :keyboard:testDebugUnitTest :keyboard:lintRelease :keyboard:assembleRelease :app:assembleDebug :host:assembleDebug
```
生成的 `keyboard/build/outputs/aar/keyboard-release.aar` 可直接放入宿主 `app/libs/`。在 Activity 的 UI 线程使用:
```java
import com.sydxky.crabinput.CrabKeyboard;
CrabKeyboard.Binding keyboard = CrabKeyboard.attach(this, editText);
// 有自己的监听器时,在相应事件中调用 keyboard.show()。
// 绑定自动跟随 Activity 生命周期,也可显式 keyboard.close()。
```
源码不包含生成的 SQLite,构建脚本从本仓库 RTOS 原始词库无损生成。正式演示 APK 签名由开发者自己的受保护配置提供;AAR 无需应用签名。
## RTOS 开发
准备 Windows PowerShell 7、Node.js、Python 3,以及合法取得的 Glyphix SDK。验证版本为 `gx v0.10.1 / 3ed38835`。将包含 `bin/gx.exe` 和 `share/` 的完整 SDK 放在 `temp/glyphix-v0.7.2-windows-x64/`:
```powershell
& .\com.sydxky.rtos.inputmethod\build.ps1
```
脚本生成词库分片,执行 59 项引擎、49 项 UX 断言,并构建普通/QuickApp 四配置。每屏 QuickApp 都须保留 `bundle.pkg`、`icon.png`、`manifest.json` 三个文件。
复现原生验收时先构建最小参考页并启动一次圆屏模拟器,获得厂商 launcher/global 资源后退出;不要同时占用 Inspector 14201:
```powershell
& .\com.sydxky.rtos.imefixture\build.ps1
Push-Location .\com.sydxky.rtos.imefixture
& ..\temp\glyphix-v0.7.2-windows-x64\bin\gx.exe emulate -d generic-watch-466x466
Pop-Location
python .\com.sydxky.rtos.inputmethod\tests\native.py --work work/native --output work/evidence
python .\com.sydxky.rtos.inputmethod\tests\visual.py --work work/visual --output work/evidence/visual
```
本版光标、等大26键及完整底部按钮回归可在独立原生模拟器中执行,不启用Inspector:
```powershell
python .\com.sydxky.rtos.inputmethod\tests\console-native.py --work work/caret --output work/evidence/caret
```
视觉脚本依赖 Pillow。RTOS 运行时内存配置保持 8192 KiB。本版本已完成上述算法、组件回归与构建检查;未完成的整包前台交互、RTOS真机、长期性能/续航和商店审核范围见本版验收记录。