Android输入法架构学习报告.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android输入法架构学习报告

安卓输入法框架(Input Method Framework)IMF 输入法框架简介 自Android平台1.5版本以后,Google开放了 Android平台输入法框架(InputMethod Framework, IMF) , IMF是Android平台的特色设计。它的出现大大推动了不带实体键盘的设备的诞生。同时,Android平台输入法框架也给出了输入法的开发所需要的接口,为Android平台的输入法提供了可扩展性。 输入法框架组成 一个IMF结构中包含三个主要的部分: input method manager(IMM):管理各部分的交互是一个客户端API,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务可以通过Context.getSystemService()来获取一个InputMethodManager 的实例。 input method(IME):实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。 client application:通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。 图1.输入法的总体框架 2.1 IMM的实现 InputMethodManagerService.java 是整个系统当中,一切与输入法有关的地方的总控制中心。它通过管理下面三个模块来实现系统的输入法框架。 WindowManagerService 负责显示输入法,接收用户事件。 InputMethodService 输入法内部逻辑,键盘布局,选词等,最终把选出的字符通过 commitText 提交出来。 InputManager ? 由 UI 控件(View,TextView,EditText 等)调用,用来操作输入法。比如,打开,关闭,切换输入法等。 在IMF中,最主要的是输入法应用,他继承于Abstract Input MethodService。InputMethodService主要由以下几个组件构成,其中包括完成输入法的相关UI和文字的输出。 图(SoftInput View) 这是软键盘的输入区域,主要完成在触摸屏下和用户的交互输入。onCreateInputView()被调用来进行软键盘视图的实例化;onEvaluateInputViewShown()决定是否显7K软键盘视图;当状态改变的时候,调用updateutViewShownO来重新决策是否显示软键盘视图。 候选字视图(CandidatesView) Candidates View也是输入法中一个相当重要的组件。当用户输入字符的时候,显不相关的列表。停止输入的时候,就会自动消失。onCreateCandidatesView()来实例化自己的输入法。和软键盘视图不同的是,候选字视图对整个UI布局不会产生影响。setCandidatesViewShown(boolean)用来设置是否显示候选字视图。 字符的输出是InputMethodService最核心的功能输入法通过InputConnection从IMF来获得字符输出。并且通过不同的编辑器(editor)类型来获取相应的支持。通过 onFinishlnputO和 onStartInput(EditorInfo, boolean)方法来进行输入目标的切换。 另外onlnitializelnterfaceO用于InputMethodService在执行的过程中配置的改变; onBindlnputO切换一个新的输入通道; onStartInput(EditorInfo, boolean)处理一个新的输入。 图2.输入法消息流转 输入法生命周期 输入法是用户、应用程序之间的交互的渠道,所有的输入法应用都需要继承特定的Android平台提供的服务。Android平台的输入法框架为输入法应用定义了一个基类InputMethodService,InputMethodService提供了一个输入法的标准实现流程,定义了输入法生命周期内的重要函数,以方便开发人员对Android输入法进行扩展。图3即为Android输入法生命周期。 图3.Android输入法生命周期 具体的实现步骤为: 1.当用户点击客户端输入控件(如editor),客户端控件获得焦点,InputMethodService启动,调用其onCreate()函数。该函数在输入法第一次启动的时候被调用,用来做初始化的设置; 2. 调用onCreatelnputViewO函数,在该函数中创建键盘视图(KeyboardView)并返 回; 3. 调用onCreateC

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档