# YuyanIme: a Rime-based Chinese IME for Android that ships ready to type

> YuyanIme (语燕输入法) wraps the librime engine in an Android keyboard with T9, full pinyin, double pinyin, handwriting and stroke input. It is built for people who want Rime's schemes without editing YAML files by hand.

**gurecn/YuyanIme** — 语燕输入法-一款基于Rime定制开发的九键、全拼、双拼、手写、火星文等方案、支持悬浮、单手、数字行等键盘模式的中文输入法

- Repository: https://github.com/gurecn/YuyanIme
- Stars: 3,656 · Forks: 217
- Language: Kotlin
- License: BSD-3-Clause
- Published: 2026-09-28 · Updated: 2026-09-28 · Language: en
- Canonical page: https://hysenlabs.com/projects/gurecn-yuyanime

## What YuyanIme is and who it is for

YuyanIme is an Android input method written in Kotlin and licensed under BSD-3-Clause. The name is a play on the swift (雨燕), and the README frames the project around three words: easy to use, fast, accurate. The stated motivation is frustration with mainstream Chinese keyboards that have grown cluttered with features and advertising, and with keyboards that request permissions the author considers unnecessary. The README says YuyanIme only uses the permissions Android grants an input method by default: clipboard, device motion and orientation, media volume control, and vibration. It states that it does not request network, storage, location or accessibility permissions, that it runs fully offline, and that input data is neither collected nor recorded.

The audience is narrower than "anyone who types Chinese". It is people who already know what Rime is, or who have bounced off it. The README names two existing Rime-based Android keyboards as prior art: 同文输入法 (Trime) and 小企鹅输入法 (Fcitx5 for Android). Its complaint about Trime is that candidate selection is awkward and you cannot pick pinyin combinations; its complaint about Fcitx5 for Android is that the nine-key grid is unsupported. YuyanIme is positioned at exactly that gap: Rime's engine, plus a T9 grid that works out of the box.

## How the Rime engine is wrapped and where the input data goes

The repository layout tells most of the architecture story. There is an app/ module for the Android application and a separate yuyansdk entry at the top level, alongside gradle files and a .gitmodules file. The submodules matter: the build instructions explicitly require git submodule update --init --recursive, which is what pulls in the Rime engine sources the project depends on. The README credits librime, Trime, Fcitx5 for Android, 雾凇拼音 (rime-ice) and 白霜拼音 (rime-frost) as upstream contributions, which matches the claim that the input schemes and dictionaries are Rime artifacts rather than something written from scratch.

The data flow is the standard Rime one. Keystrokes from the on-screen keyboard are translated into a Rime input sequence, the engine consults its schemas and dictionaries, and candidates come back to the Android view layer for display. What YuyanIme adds is the layer above that: keyboard layouts, the candidate bar, themes, and the settings UI. Because the engine is local, the privacy claim is structural rather than a policy promise. There is no network permission to leak through, so the README's statement that data stays on the phone follows from the permission set. That is a stronger argument than a privacy policy, and the repository does ship a privacypolicy.md file as well.

The README lists the built-in schemes: full pinyin in both nine-key and full-key layouts, double pinyin with 小鹤, 智能ABC, 自然码, 紫光, 微软, 搜狗 and 乱序17 variants, handwriting, and five-stroke. It also documents abbreviated pinyin and full pinyin, English input on a full keyboard, and dictionary extension via 雾凇 and 白霜 word lists. The breadth of double pinyin variants is unusual and is one of the more concrete things the project offers over a generic keyboard.

## Installing YuyanIme on Android and typing your first sentence

The README gives three installation routes, and none of them involve building anything. The project is published on Huawei AppGallery and on Tencent's 应用宝 store under the package name com.yuyan.pinyin.online.release, so on those stores you search for 语燕输入法 and install. The third route is the release page: the README points to GitHub Releases and, for users in mainland China where GitHub is slow, to Gitee Releases, where the latest APK can be downloaded directly. The most recent releases listed are v20260530.10, v20260526.22 and v20260521.22.

After installing, you enable the keyboard in Android's input method settings and switch to it. The README's keyboard preview section shows what you land on: a nine-key pinyin grid, a full pinyin keyboard, 乱序17, double pinyin, stroke, handwriting, English, numeric and editing layouts, plus clipboard, one-handed, floating and emoji keyboards. A first real use is simply typing on the nine-key grid and picking candidates from the bar above it.

The project also documents building from source, which is a different commitment. The README states the environment: minSdk 23, JDK 17, and a recent stable Android Studio (the author names Android Studio Narwhal Feature Drop 2025.1.2). Clone with submodules first:

```bash
git clone git@github.com:gurecn/YuyanIme.git
git submodule update --init --recursive
```

Then create a signing configuration. The README says to make a keystore folder at /YuyanIme/keystore containing a .jks file and a keystore.properties file with these keys:

```sh
storeFile=keystore/*.jks
storePassword=testPassword
keyAlias=testalias
keyPassword=testPassword
```

Import the project into Android Studio, select a target device and run it. According to the README, the device will install and launch 语燕输入法 automatically. The values above are placeholders from the README, not real credentials, and you supply your own signing key.

## Known bugs and the cases where YuyanIme is the wrong keyboard

The README keeps a known-issues section, which is more honesty than most input method projects offer, and it is worth reading before you commit. On Xiaomi phones, tapping settings from the keyboard menu does nothing until you manually grant the 后台弹出界面 permission through 设置 - 应用管理 - 语燕输入法 - 权限管理. That is a platform quirk, but it means the settings entry point is effectively broken on a fresh Xiaomi install until you find that toggle.

Key volume behaves differently across vendors. YuyanIme uses the system notification volume as the basis for key sounds. On a muted phone there is no key sound at all. When the phone is not muted, the notification volume controls it, except on Samsung phones, where the README says the system volume is used instead. If you expect consistent key feedback across devices, you will not get it.

The most serious entry is orientation. The README states that switching between landscape and portrait halfway through typing a message has a high probability of making the landscape screen unresponsive to touch, leaving only the keyboard keys clickable. The workaround offered is to make sure the input field is empty before rotating. That is a real usability defect, not a cosmetic one, and the README does not document a fix. If you type long messages on a device that rotates freely, test this before adopting.

There is also a maintenance consideration the README does not address at all: the release notes give no upgrade path, no migration notes and no statement about whether settings or user dictionaries survive an update. Rollback is not documented either. Treat updates as an unknown until you check the release page yourself.

## How YuyanIme differs from Trime and Fcitx5 for Android

The honest comparison is with the two projects the README itself names, because they share the same engine and the same upstream dictionaries.

Trime (同文输入法) is the long-standing Rime front end for Android. Its approach is to expose Rime almost directly: you get the engine's full configurability, and you are expected to manage schemas and configuration files. YuyanIme takes the opposite stance. The README's stated goal is an input method that works immediately after installation, "even if you have no time to study it". The trade-off is that you get the author's curated set of schemes and settings rather than the full Rime configuration surface. If your workflow depends on hand-editing Rime YAML, Trime is closer to the metal.

Fcitx5 for Android (小企鹅输入法) is a port of the Fcitx5 input method framework, with Rime available as an addon. It is broader in scope than a pinyin keyboard. The README's specific criticism is that it has no nine-key grid, which for a large group of Chinese phone users is the default way to type. YuyanIme builds the T9 layout as a first-class keyboard rather than an afterthought.

The other difference is dictionary curation. Both YuyanIme and the alternatives can load 雾凇拼音 and 白霜拼音, but YuyanIme ships them as supported extensions with its own optimized nine-key and 乱序 schemes layered on top. If you already have a working Rime setup you like, switching buys you the T9 layout and the one-handed and floating keyboards, and costs you the ability to tune the engine as freely.

## Licence, build cost and what maintenance looks like

YuyanIme is BSD-3-Clause. That is a permissive licence: it allows redistribution and modification, including in closed products, provided the copyright notice and licence text are retained and the project's name is not used to endorse derivative work. Note that the Rime engine and the dictionaries the project builds on carry their own licences, and the README credits them rather than restating terms. If you plan to redistribute a build, check the licence of each submodule as well, since the submodule list is what the build actually pulls in. This is not legal advice.

The build cost is moderate but not trivial. You need JDK 17, the Android SDK at minSdk 23, a recent Android Studio, and a signing keystore you create yourself. The submodule init is mandatory; skipping it will leave you without the engine sources. The repository does not document a CI pipeline or a release automation story, so building a reproducible APK is on you.

On maintenance, the last push to the master branch was on 2026-09-28, and the most recent tagged release listed is v20260530.10. The repository is not archived, and the README says the author fixes issues reported through GitHub issues, in-app feedback or email. What is not documented is a support window, a deprecation policy, or any statement about how long older Android versions will be supported. For a personal keyboard that is fine. For anything resembling an organisational deployment, the absence of those documents is the thing to weigh.

## Conclusion

Adopt YuyanIme if you want Rime-style pinyin schemes on Android without maintaining Rime configuration yourself, and if an offline keyboard with a minimal permission set is what you are after. Skip it if you need a documented release process, or if you rely on a keyboard that never breaks the touch layer on orientation change, since the README lists that as an open bug. Before installing, check the release page for the current APK, and check the submodule list in .gitmodules if you plan to build from source rather than install from an app store.

## FAQ

### Does YuyanIme require an internet connection or upload my typing?

No. The README states that YuyanIme does not request network, storage, location or accessibility permissions, runs fully offline, and neither collects nor records input data. The only permissions it uses are the ones Android grants an input method by default: clipboard, device motion and orientation, media volume control, and vibration.

### Which input schemes does YuyanIme support?

The README lists full pinyin in nine-key and full-key layouts, double pinyin with 小鹤, 智能ABC, 自然码, 紫光, 微软, 搜狗 and 乱序17 variants, handwriting, and five-stroke, plus abbreviated pinyin and English input on a full keyboard. Dictionary extension is supported through 雾凇 and 白霜 word lists.

### How do I install YuyanIme on an Android phone?

The README gives three routes: search for 语燕输入法 on Huawei AppGallery or 应用宝 (the package is com.yuyan.pinyin.online.release), or download the APK from GitHub Releases, with Gitee Releases offered as a mirror for users in mainland China. After installing you enable the keyboard in Android's input method settings and switch to it.

## Sources

- [gurecn/YuyanIme on GitHub](https://github.com/gurecn/YuyanIme)
- [Issues](https://github.com/gurecn/YuyanIme/issues)
- [License: BSD-3-Clause](https://github.com/gurecn/YuyanIme/blob/master/LICENSE)
- [README](https://github.com/gurecn/YuyanIme/blob/master/README.md)
- [Releases](https://github.com/gurecn/YuyanIme/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/gurecn-yuyanime
