admin管理员组文章数量:1532484
2024年6月4日发(作者:)
android输入法02:openwnn源码解析01—输入流程
之后要开始android日文输入法的测试,因此现在开始研究android输入法。之前两
篇文章已经对android自带的输入法实例softkeyboard的源码进行了解析。这一系
列将开始学openwnn的源码。
openwnn是一家日本公司开发的开源输入法框架,涉及中文、日文、韩文。目
前已经加入到了android源码之中。因此你打开一个模拟器时,会发现其中有一个
japanese ime的输入法,其服务名为openwnn,这个就是openwnn的日文输入法。
1、日文输入
本文章主要以日文输入法为主。为了方便大家阅读,先对日文输入法做一个简
单的介绍:
•
日文输入法分为罗马音输入法(类似中文拼音)和假名输入法(类似中文
五笔)。比如,你要输入”可愛“,则用罗马音输入,需要输入”kawai“,然后
在候选词中选择”可愛“;若使用假名输入,则需要输入”かわい“,在候选中
选择”可愛“。
•
日文由平假名、片假名(分全角片假名和半角片甲名)和汉字组成。通常学
日语的人会说到50音图,就是日语50个平假名(与之对应有50个片假名)
的读音。其中平假名是由汉字演化而来的,类似于日文的拼音,比如”可愛
“的日文读音就是”かわい“。片假名是由于外来语的入侵,原来平假名无法表
达所有的外文内容而设计的。
这里,如果你读到这个类时,其中会涉及到三个输入层:
第一层为原始输入,比如输入的按键;第二层为假名层;第三层为最终显示结果,
一般为汉字与假名的混合体。以前面那个例子,在罗马音输入法模式下,第一层
为”kawai“,第二层为”かわい“,第三层为”可愛“。若你不懂日文的一些基本特点,这
一个地方有可能看不懂。
2、输入流程
2.1 android输入法输入流程
现在我们开始介绍输入流程。从前面的文章对softkeyboard的分析(若你对输
入法不了解,请看前两篇介绍softkeyboard的文章,否则后面的内容很难看懂),
我们可以知道,输入法包括四个部分:Keyboard,KeyboardView,CandidateView,
InputMethodService。其中InputMethodService是前面三者的使用者,同时也设定
了输入流程。android输入法的调用流程如下:
输入法在Android中的本质就是一个Service,假设用户刚刚启动Android,用
户移动焦点首次进入文本编辑框时,Android便会通知Service开始进行初始化工作。
于是便有了如图中的一系列动作。
追根溯源,onCreate方法继承至Service类,其意义和其他Service的是一样
的。Sample在这里,做了一些非UI方面的初始化,即字符串变量词汇分隔符的初
始化。
接下来执行onInitializeInterface,这里是进行UI初始化的地方,创建以后和配置修
改以后,都会调用这个方法。Sample在这里对Keyboard进行了初始化,从XML
文件中读取软键盘信息,封装进Keyboard对象。
第三个执行的就是onStartInput方法,在这里,我们被绑定到了客户端,接收
所有关于编辑对象的详细信息。
第四个执行的方法是onCreateInputView,在用户输入的区域要显示时,这个
版权声明:本文标题:android输入法02:openwnn源码解析01—输入流程 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1717508744a578945.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论