介绍词库的优先级之前,先来简单的介绍下词库的类结构,如下图:
词库UML.png词库的基类是Dictionary,派生类有5个,其中ExpandableBinaryDictionary又有3个派生类,分别是UserHistoryDictionary(历史记录词典)、ContactsBinaryDictionary(联系人词典)、UserBinaryDictionary(用户词典)
由此可见,输入法中的词库大致分四种:
- 主词典
- 联系人
- 历史记录
- 用户词典
在代码中也可以找到佐证,DictionaryFacilitator.java中可找到如下定义:
public static final String[] ALL_DICTIONARY_TYPES = new String[] {
Dictionary.TYPE_MAIN,
Dictionary.TYPE_CONTACTS,
Dictionary.TYPE_USER_HISTORY,
Dictionary.TYPE_USER};
那么这四类词库是如何管理协作、如何支撑输入法的高频查询、查询结果又是如何排序的呢,下一篇文章会先从分析各个词库的作用作为切入点,逐步分析每个词库的实现细节。
网友评论