关注词库的简介和类图,可以参考上一篇文章:
LatinIME输入法源码解析-词库种类简介:http://www.jianshu.com/p/bf70a3cb3bcd
本篇主要介绍四大类词库中最重要的主词库 (Dictionary.TYPE_MAIN))
主要分以下几个维度来描述:
- 存储
- 更新
- 查询
一、存储
主词库存储在LatinIME.apk的res/raw目录下
main_dict.png获取主词库资源的代码如下:
public static int getMainDictionaryResourceId(final Resources res, final Locale locale) {
int resourceId = getMainDictionaryResourceIdIfAvailableForLocale(res, locale);
if (0 != resourceId) {
return resourceId;
}
return res.getIdentifier(DEFAULT_MAIN_DICT+DecoderSpecificConstants.DECODER_DICT_SUFFIX, "raw", RESOURCE_PACKAGE_NAME);
}
可见,主词库是根据当前的Locale来动态拼接的
顺藤摸瓜,根据以上函数来查找引用,可以得到如下的调用链:
DictionaryFactory.createMainDictionaryFromManager
|_____BinaryDictionaryGetter.getDictionaryFiles
|_______(*)DictionaryInfoUtils.getMainDictionaryResourceId
网友评论