最近开始翻看起了输入法的相关资料,首先我下载一个PinyinIME源码,想从它着手了解输入法更深入,做到能添加一门输入法的能力,第一步必须编译通过,我喜欢用NDK方式,把源码拷贝到Ubuntu系统后开始编译之旅,有以下两个问题修正:
第一个问题就是缺少文件cutils/log.h,有两个文件用到,分别是jni/android/com_android_inputmethod_pinyin_PinyinDecoderService.cpp和jni/share/userdict.cpp,其实这个文件就是打印log用的,我们可以自己定义android的log打印,我直接注释掉了,没几个地方,第一个文件com_android_inputmethod_pinyin_PinyinDecoderService.cpp在registerNativeMethods函数里两处,第二文件userdict.cpp是对LOGD_PERF的定义里用到了;
第二个问题就是android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lpthread,那么修改下jni/Android.mk即可,把LOCAL_LDLIBS += -lpthread改为LOCAL_LDLIBS += -pthread。
这样编译工作大功告成。