墨染清风书雅韵,奇思逸趣入诗文。
Android 端的输入法前端,负责把 moqi-ime 后端接入 Android InputMethodService,并提供自绘键盘、候选栏、编辑区、键盘内菜单、方案切换和语音输入等移动端能力。
当前状态:已接入 Rime / 中州韵,默认使用 白霜拼音,支持 26 键 / 9 键方案自动切换。
- 本地输入引擎:拼音、五笔等核心输入逻辑由
moqi-ime提供,Android 侧只负责按键、候选和上屏。 - 默认白霜拼音:内置白霜拼音方案数据,支持 Rime 候选、注释、整句和方案配置。
- 26 键 / 9 键自动布局:根据当前 Rime schema 自动展示 26 键或中文九键,不需要单独的键盘切换按钮。
- 键盘内菜单:点击
...展开菜单,可切换输入状态、方案集、当前输入方案、系统输入法,并支持下载新的方案集。 - 下滑输入数字和标点:QWERTY 字母键显示副字符,下滑可输入数字或常用标点。
- 长按空格键语音输入:轻点空格仍输入空格;长按空格开始本地语音识别,松开空格时将编辑区里的识别文字上屏并停止聆听。
- 隐私安全:输入、候选在本地处理;语音在设备本地识别(Sherpa),不上传音频。云剪贴板默认关闭,开启后仅将纯文本同步到您自建的 WebDAV(HTTPS + 基本认证)。
- 深色模式:候选区、编辑区和键盘支持跟随系统深色模式。
- 安装 APK。
- 在系统设置中启用「墨奇输入法」。
- 在输入法选择中切换到「墨奇输入法」。
- 点击键盘底栏
...可打开菜单,切换方案集或当前输入方案。 - 长按空格键进行语音输入,松开后上屏当前识别结果。
26 键布局会展示下滑副字符,字母键可直接输入拼音,底栏集成符号、数字、中英切换、回车和长按空格语音入口。
切换到 9 键方案后,键盘自动变为中文九键布局;左侧侧栏显示可选拼音,候选栏同步展示 Rime 候选。
底栏 123 和 符 可快速进入数字键盘和符号键盘。符号键盘按常用、英文、中文、网络分组,适合移动端快速输入标点和网址片段。
点击候选栏左侧 ... 打开墨奇菜单,可切换输入状态、方案集、当前输入方案,也可以进入系统输入法选择和设置页。
设置页提供 Rime 共享配置目录、主题、键盘高度、按键音效、振动等选项。主题列表可一键切换键盘配色。
最后一行布局支持拖动调整,26 键、123 数字键盘和符号键盘都可以分别配置,只影响每个键盘的最后一行。
支持长按空格触发本地语音输入;full 版本会在空格键显示麦克风标识,提示当前构建已启用语音能力。
┌─────────────────────────────────────────────┐
│ Android 应用 / 输入框 │
├─────────────────────────────────────────────┤
│ MoqiInputMethodService │
│ - Android InputMethodService 实现 │
│ - 处理按键、候选选择、上屏、语音入口 │
├─────────────────────────────────────────────┤
│ KeyboardView / CandidateView / ComposeView │
│ - 自绘键盘 │
│ - fcitx5 风格候选栏和编辑区 │
│ - 长按空格语音、下滑副字符、键盘内菜单 │
├─────────────────────────────────────────────┤
│ MoqiImeEngineRunner / MoqiImeSession │
│ - 后台线程串行调用 Go mobile bridge │
│ - 避免 Rime 处理阻塞 Android UI │
├─────────────────────────────────────────────┤
│ moqi-ime.aar │
│ - gomobile bind 生成的 Go 后端 AAR │
│ - 集成 librime.so 和 Rime 数据部署逻辑 │
└─────────────────────────────────────────────┘
本仓库不实现拼音解析、候选生成、词库管理等输入法核心逻辑,这些能力由 moqi-ime 提供。
Android 侧的职责主要是:
- 把 Android 软键盘按键转换为
moqi-ime请求。 - 根据后端返回结果更新候选栏、编辑区和上屏文本。
- 暴露方案集、schema 和输入状态菜单。
- 管理本地 Rime 数据目录、语音识别和移动端交互。
app/src/main/java/com/moqi/im/
├── core/
│ └── MoqiInputMethodService.kt # IME 核心服务
├── engine/
│ ├── MoqiImeBridge.kt # gomobile bridge Kotlin 包装
│ ├── MoqiImeEngineRunner.kt # 后台线程调用输入引擎
│ └── SherpaVoiceEngine.kt # 本地语音识别
├── keyboard/
│ ├── KeyboardView.kt # 自绘键盘
│ ├── CandidateView.kt # 候选词栏
│ ├── ComposeView.kt # 编辑区 / 组合串显示
│ ├── KeyboardMenuView.kt # 键盘内菜单
│ ├── KeyDefinition.kt # 按键定义
│ └── KeyCode.kt # 特殊按键编码
├── settings/
│ ├── SettingsActivity.kt
│ └── SettingsFragment.kt
└── MoqiApplication.kt
如果修改了 moqi-ime 或 mobile bridge,需要先重新生成 AAR:
powershell -ExecutionPolicy Bypass -File .\scripts\build-moqi-ime-aar.ps1构建 Android debug APK:
.\gradlew.bat assembleDebug安装到已连接的 Android 设备:
adb install -r .\app\build\outputs\apk\debug\app-debug.apk- 语音输入:使用设备本地 Sherpa 模型识别,音频不会上传到第三方服务器。
- 云剪贴板(可选,默认关闭):在设置中配置 WebDAV 地址、用户名与密码(密码加密保存在本机)。开启后,仅在输入法窗口可见时,将您复制的纯文本按最小间隔上传至 WebDAV 上的
{设置目录}/clip/(设置目录默认moqi-input-method/,词库同步将使用同级的dict/)。系统标记为敏感的内容、掩码密码样式等会尽力跳过,避免与下载上屏形成循环上传。 - 多端协同:多端添加同一 WebDAV,即可与手机互相同步剪贴板文件(复制/粘贴文件内容即可)。
白霜拼音 https://github.com/gaboolic/rime-frost
墨奇音形 https://github.com/gaboolic/rime-shuangpin-fuzhuma
墨奇五笔整句 https://github.com/gaboolic/rime-wubi-sentence
MIT License











