美文网首页基础Android知识Android开发
LatinIME输入法源码解析-主词库

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

作者: JulyZhang | 来源:发表于2017-05-25 04:18 被阅读168次

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

    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
    

    相关文章

      网友评论

      • 三也视界:这个的应用场景都有哪些?比如我们是否可以拿到全局的输入记录,在我们应用内做类似的搜索功能?类似于微信

      本文标题:LatinIME输入法源码解析-主词库

      本文链接:https://www.haomeiwen.com/subject/mlrxvttx.html