由于工作需要,以后需要开始对android输入法进行测试,因而开始研究android输入法。在上两篇文章中,对android自带的softkeyboard输入法实例源码进行了解析。现在开始研究著名的中日韩三语开源输入法框架opwnn。该框架已经被加入到android源代码中,所以你在使用模拟器的时候,会发现有一个japanese IME的输入法,这个就是openwnn的日文输入法。(这里同时涉及一个问题,你无法再模拟器上安装openwnn输入法,因为它已经被默认安装了。)
从之前对softkeyboard的分析可知,android输入法至少需要包含四个部分:Keyboard,KeyboardView,CandidateView,InputMethodService。其中InputMethodService是最重要的部分,其中涉及了输入流程以及前面三个类的应用。我们先来介绍这一部分。
由于本人做的是日文输入法的测试,因此在源码分析中只涉及日文输入法部分,关于中文和韩文,大家可以参照着看看。
首先先来介绍一下日文输入法。日文输入法有两种输入法模式,一种是罗马音输入模式(类似中文拼音输入)和假名输入法模式(类似中文五笔输入法)。举个例子,输入“可愛”,若使用罗马音输入法,则输入“kawai‘,在候选词中可以找到