Try to implement a simple qt virtual keyboard plugin, just for fun
sudo apt-get install g++ qtbase5-dev qtquickcontrols2-5-dev qtdeclarative5-dev qtbase5-private-dev qml-module-qtquick2 qml-module-qtquick-controls2
PinyinIME is from AOSP project (https://android.googlesource.com/platform/packages/inputmethods/PinyinIME), which is in Apache License 2.0.