Fcitx5 input method framework and engines ported to Android.
- English (with spell check)
- Chinese (Pinyin, Shuangpin, Wubi, Cangjie and custom tables)
- Vietnamese (Based on UniKey, supports Telex, VNI and VIQR)
- Japanese (via Anthy Plugin)
- Virtual Keyboard (layout not customizable yet)
- Expandable candidate view
- Clipboard management (plain text only)
- Theming (custom color scheme and background image)
- Popup preview on key press
- Long press popup keyboard for convenient symbol input
- Symbol and Emoji picker
- Plugin System for loading addons from other installed apk
- Customizable keyboard layout
- More input methods (via plugin)
拼音, Material Light theme, key border enabled | 自然码双拼, Pixel Dark theme, key border disabled |
---|---|
![]() |
![]() |
Emoji picker, Pixel Light theme, key border enabled | Symbol picker, Material Dark theme, key border disabled |
---|---|
![]() |
![]() |
Trello kanban: https://trello.com/b/gftk6ZdV/kanban
Matrix Room: https://matrix.to/#/#fcitx5-android:mozilla.org
Discuss on Telegram: https://t.me/+hci-DrFVWUM3NTUx (@fcitx5_android originally)
- Android SDK Platform & Build-Tools 33.
- Android NDK (Side by side) 25 & CMake 3.22.1, they can be installed using SDK Manager in Android Studio or
sdkmanager
command line. Note: NDK 21 & 22 are confirmed not working with this project. - KDE/extra-cmake-modules
- GNU Gettext >= 0.20 (for
msgfmt
binary; or installappstream
if you really have to use gettext <= 0.19.)
First, clone this repository and fetch all submodules:
git clone git@github.com:fcitx5-android/fcitx5-android.git
git submodule update --init --recursive
Install extra-cmake-modules from your distribution software repository:
# For Arch Linux (Arch has gettext in it's base meta package)
sudo pacman -S extra-cmake-modules
# For Debian/Ubuntu
sudo apt install extra-cmake-modules gettext
Install Android SDK Platform, Android SDK Build-Tools, Android NDK and cmake via SDK Manager in Android Studio:
Detailed steps (screenshots)
These screenshots are for references and the versions in them may be out of date. The current recommended versions are recorded in Versions.kt file.
- Gradle error: "No variants found for ':app'. Check build files to ensure at least one variant exists."
-
- Examine if there are environment variables set such as
_JAVA_OPTIONS
orJAVA_TOOL_OPTIONS
. You might want to clear them (maybe in the startup scriptstudio.sh
of Android Studio), as some gradle plugin treats anything in stderr as errors and aborts.
- Examine if there are environment variables set such as
Appropriate Android SDK with NDK is available in the development shell. The gradlew
should work out-of-the-box, so you can install the app to your phone with ./gradlew installDebug
after applying the patch mentioned above. For development, you may want to install the unstable version of Android Studio, and point the project SDK path to $ANDROID_SDK_ROOT
defined in the shell. Notice that Android Studio may generate wrong local.properties
which sets the SDK location to ~/Android/SDK
(installed by SDK Manager). In such case, you need specify sdk.dir
as the project SDK in that file manually, in case Android Studio sticks to the wrong global SDK.