/fcitx5-android

An attempt to run fcitx5 on Android

Primary LanguageKotlinGNU Lesser General Public License v2.1LGPL-2.1

fcitx5-android

An attempt to run fcitx5 on Android.

Project status

It can build, run, print to logcat, and dispatch event to JVM side. Also there is a minimal virtual keyboard.

Build

Dependencies

  • Android SDK Platform & Build-Tools 30 or newer version
  • Android NDK (Side by side) 23 & cmake 3.18.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 (msgfmt binary)

How to set up development environment

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
sudo pacman -S extra-cmake-modules
# For Debian/Ubuntu
sudo apt install extra-cmake-modules

Install Android SDK Platform, Android SDK Build-Tools, Android NDK and cmake via SDK Manager in Android Studio:

Detailed steps (screenshots)

open SDK Manager

install SDK Platform

install SDK Build-Tools

install NDK

install CMake

Additional patches

No patching needed! We can run mainline fcitx5 on Android! Yay!

Screenshots

light dark

Nix

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.