LatinIME输入法源码解析-主词库

关注词库的简介和类图,可以参考上一篇文章:

LatinIME输入法源码解析-词库种类简介:http://www.jianshu.com/p/bf70a3cb3bcd

本篇主要介绍四大类词库中最重要的主词库 (Dictionary.TYPE_MAIN))

主要分以下几个维度来描述:

  • 存储
  • 更新
  • 查询
一、存储

主词库存储在LatinIME.apk的res/raw目录下

LatinIME输入法源码解析-主词库_第1张图片
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

你可能感兴趣的:(LatinIME输入法源码解析-主词库)