学士学位论文基于android的输入法的设计与实现.docx
- 文档编号:26009172
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:31
- 大小:440.12KB
学士学位论文基于android的输入法的设计与实现.docx
《学士学位论文基于android的输入法的设计与实现.docx》由会员分享,可在线阅读,更多相关《学士学位论文基于android的输入法的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
学士学位论文基于android的输入法的设计与实现
本科毕业论文
基于Android的输入法的设计与实现
TheDesignandRealizationoftheInputMethodBasedonAndroid
学院名称:
计算机科学与信息工程学院
专业班级:
计算机科学与技术12-1(信息技术)
学生姓名:
学生学号:
指导教师姓名:
指导教师职称:
2016年5月
基于Android的输入法的设计与实现
摘要:
随着科技信息技术的不断进步与发展,电子移动设备越来越普及。
其中最受人们推崇的就是智能手机。
人们可以通过手机中的短信消息、电话薄、记事本、聊天工具、浏览器等进行通讯聊天、搜索阅览最新资讯等。
但手机这些功能的实现都有一个最基本的前提,即支持字符输入。
目前市场上手机品牌繁多,主要流行的智能手机操作系统包括:
Android、iOS、Symbian、WindowsPhone,其中Android用户占大部分。
因此实现一个基于Android的、既能快速输入又简单易学的输入法APP有着绝对的市场优势。
另外,一款便捷的输入法在提高输入效率的同时也可以推广第三方应用的使用率。
本文针对当前输入法软件的需求,设计一款能够支持中英文切换、标点符号输入、数字输入的输入法APP,在输入时能够生成联想词以便提高输入效率。
而且增加了按键的效果,如振动。
本设计在实现过程中主要用到了Android四大组件的Service组件、对XML文件解析等。
关键字:
输入法;Android;联想词
TheDesignandRealizationoftheInputMethodBasedonAndroid
Abstract:
Withthecontinuousdevelopmentofscienceandtechnologyprogressandinformationtechnology,electronicmobiledevicesbecomingincreasinglypopular.Towofthemostrespectedpeopleardsmartphones.Peoplecancommunicatechat,searchbyreadingthelatestnewsandothermobilephoneSMSmessages,phonebook,notepad,chat,browser,etc.Buttherealizationofthesefeaturesthephonehasabasicpremisethatsupportcharacterinput.Mobilephonescurrentlyonthemarketmanybrands,mainlypopularsmartphoneoperatingsystemsinclude:
Android,ios,Symbian,WindowsPhone,whichaccountsforthemajorityofAndroidusers.ThusachievingaAndroid-based,botheasytolearnandfastinputInputMethodAPPhasanabsolutemarketadvantage.Inaddition,aconvenientinputmethodinputinimprovingefficiencybutalsocanpromotetheusageofthird-partyapplications.Inthispaper,thecurrentinputmethodsoftwarerequirementsdesignaswitchcansupportinEnglishpunctuationinput,inputmethodAPPdigitalinputs,whentheinputtogeneratewordassociationsinordertoimprovetheefficiencyoninput.Butalsoincreasestheeffectofkeys,suchasvibration.ThedesignprocessismainlyusedintherealizationofthefourmajorcomponentsoftheAndroidServicecomponents,analyticaltechniquesandotherXMLdocuments.
Keywords:
Inputmethod; Android; Associationalword
引言
随着科学技术的进步与发展,移动终端设备越来越普及,而且它的硬件设备越来越好,应用软件也层出不穷,具有很大的发展空间。
目前市场上移动终端设备使用的主流操作系统为Android、iOS、Windowsphone,来自Statistic的数据显示,2010年iOS与Android共同的市场份额才仅为38%,但目前两者在移动市场上的份额已经超过了97%,而Windowsphone目前的移动市场份额约占2.5%,且呈现下滑趋势。
作为移动终端设备的引领者,Android系统以其源码开源的优势正处于蓬勃发展的开拓阶段,可谓是如日中天。
正是因为Android源码开源,开发语言简单,智能手机价格亲民且性能体验优良,用户、程序开发者越来越倾向于Android系统的智能机,而以Android系统开发的应用软件的市场前景也是欣欣向荣。
目前软件市场虽然发展前景光明,但有市场必定存在竞争,而只有竞争才能促进技术的进步,性能体验的不断完善。
市场上软件种类繁多,而且它们的功能也都根据用户的体验不断地完善与升级,用户在使用这些软件的时候,不可避免的会触发输入功能,例如微信、陌陌、记事本、电话薄…输入功能是由单独的输入法APP完成的,用户在使用输入法功能时最基本的用户体验就是输入效率,因此如何提高输入法的输入效率在实现输入法APP时尤为重要。
本设计就是根据这一需求实现了一款可以中英文切换的输入法APP。
在输入时实现了联想词的功能,从而极大提高了输入效率。
且在输入法设置中也增加了一些按键效果,如振动、音效,用户反馈功能及联想词对否打开的控制开关。
第1章概述
社会在发展,科技在进步。
曾经交通不畅信息闭塞,如今通过互联网络我们足不出户便闻天下事;曾经手机块大如砖,如今小巧精致;曾经手机仅能通话,如今同电脑一样功能丰富;曾经只有英文输入法,如今有多种语言输入。
每一种进步都是根据人们的需求不断努力创新、探索的结果。
我国作为智能手机用户的大国,如何提高中文输入的速率、优化输入法字符的输入方式已经成为急需解决的问题。
1.1选题背景
科技信息技术在不断的进步与发展,电子移动设备也受到极大的推崇。
其中最受人们推崇的就是智能手机。
人们可以通过手机中的短信消息、电话薄、记事本、聊天工具、浏览器等进行通讯聊天、搜索阅览最新资讯等。
但手机这些功能的实现都有一个最基本的前提,即支持字符输入。
最早期的输入法软件仅支持英文字符输入,但随着电子移动设备的推广仅英文输入已经不能满足广大用户的需求。
人们已经开始研究如何使输入法支持输入多种语言,甚至各种表情符号。
而我国在推动移动终端设备的发展上起到重要作用,实现一款操作便捷、输入效率高、支持中文输入的输入法APP是市场发展的必然需求。
目前,实现中文输入的主要技术来源是依靠国外技术,国内一些公司在研发输入法APP时需要交纳高昂的专利费用。
另外,市场上输入法APP种类虽然玲琅满目,例XX输入法、搜狗输入法、讯飞输入法…但用户在操作时仍会觉得操作不便,设置繁琐等问题,因此,根据这些现状开发一款操作便捷、输入效率高的输入法APP尤为重要。
1.2软件设计的概述
1.2.1设计内容
本设计是基于Android的输入法的设计与实现。
主要实现一个第三方的输入法apk,将该apk装入Android系统的移动设备,能够通过系统设置将装入的输入法设置为默认输入法,使得用户在进行输入操作时均是通过该输入法实现输入。
系统的结构设计主要分为设置模块、输入模块、用户反馈模块。
设置模块的功能:
用户可以根据自己的需求通过设置页面对输入法进行输入设置,如控制输入时是否有按键声音、振动;是否开启联想词功能;用户反馈功能。
输入模块的功能:
用户可以实现中文输入、英文输入的切换,且在输入时会产生联想词,以提高输入效率;可以输入0~9阿拉伯数字及其他标点符号;在英文输入时可以切换大小写等。
用户反馈模块功能:
用户可以输入反馈信息向开发者反馈应用的优缺点,以便产品的优化、应用的升级。
1.2.2选题目的和意义
随着移动通信设备的日益普及,人们越来越多地依赖于这些设备进行信息处理与交流,因此如何快速准确地向移动设备输入文字信息成为当今信息领域研究的热点之一。
目前,移动设备使用的输入法主要为:
数字键盘输入法、手写输入法以及全键盘输入法。
由于移动设备硬件的限制,数字键盘输入法成为手机中最为常用的输入法,而我国汉字输入的主要技术来源于国外,90%以上的手机嵌入的汉字输入法技术使用的是国外的专利与技术,这需要交纳高昂的专利费用。
而且,中国汉字呈现多样化,目前很多输入法虽然能实现中文输入,但是有很多汉字不完全,根本无法输入一些生僻字。
因此开发一款属于我们自己的输入法不仅可以省去高昂的专利费用而且可以根据我们自己的需求设计出使用便捷舒适的输入法。
另外,我们通常都是用手机自带的输入法,如三星输入法、google输入法,有时我们也会根据自己的喜好下载应用第三方的输入法,如:
搜狗输入法、XX输入法、讯飞输入法等。
但是我们在使用这些输入法时或多或少会觉得有些不如意,可能认为输入界面设计的不合理给人视觉效果不好,或者找不到我们所需的文字或表情等。
而且,未来的发展就是输入法的“语音时代”,输入法更加的智能与迅速,更加符合越来越快的社会节奏。
因此设计一款输入法,使其尽可能的便捷,这样不仅加深了对Android输入法框架的理解,还能将各种输入法向移动设备的移植有借鉴意义。
1.3国内外研究状况
Android曾经是旧金山一家公司的名字,于2005年8月份被Google收购。
Android系统由于它的开放性、应用程序无界性、应用程序可以轻松嵌入网络、并行运行等特点,已经成为一个平台、一个生态体系,在移动领域已经得到广泛应用。
在国外,自Google公司宣布Android系统上市以来,在短短的几年内由于开源的优势迅速发展,在市场上有很大的市场占有率。
在国外有很多基于Android平台开发的技术已经相当成熟。
在国内,Android自09年进入中国以来,由于其设备价格的亲民性、移动通信设备公司的大力宣传,受到广大消费者的追逐。
而广大应用程序的开发者也因为市场的需求、Android源码的开放性、开发工具的免费性陆续转战到基于Android平台的开发。
目前国内Android开发主要方向是应用层开发,大致可分为三类:
为企业开发应用、开发通用应用及游戏开发。
虽然Android源码对外开放,但国内的学习资料并不是很多,大部分学习资料都是翻译过来的,并不全面而且可能丢失了原文所表达的含义。
而对于英文文档,由于大部分人的英语水平限制,对原文文档理解的不是很透彻,这些都为Android技术在国内的发展带来了不便。
1.4本章小结
本章主要介绍了选题背景、设计内容及其意义、国内外研究状况,充分说明输入法APP实现的重要性。
第2章系统分析
需求分析在程序开发过程中具有举足轻重的地位。
程序在开发过程中它的功能就是根据需求而来的,如果一个系统在开发前没有进行需求分析,那么投入的人力、物力、财力都是徒劳的。
因为系统在开发前就忽略了用户的需求,最后的结果肯定不能满足用户的要求。
因此,需求分析在项目开发中具有决策性、方向性和策略性。
2.1开发工具与环境简介
开发工具:
Eclipse、Androidstudio;
软件环境:
JDK1.7版本,SDK,Sqlite数据库。
2.1.1Eclipse工具简介
Eclipse是一个开源的、免费的、基于Java的跨平台的集成开发环境(IDE),可以通过安装不同的插件使其支持不同的计算机语言。
Eclipse的优点如下:
1.源码开放、免费的开发工具;
2.可以通过安装插件支持多种计算机语言,形成一个强大的开发环境;
3.具有可视化开发界面,便于开发人员操作。
2.1.2Androidstudio工具简介
Androidstudio是近年Google公司专门为Android开发者提供的开发工具,它是基于IntelliJIDEA的Android开发环境,类似于eclipse的ADT插件,基于Gradle的构建支持。
它的提示工具更好地对程序性能、可用性、版本兼容和其他问题进行控制捕捉,同时它自带的布局编辑器可以随意拖动UI组件,并支持在多个屏幕配置上预览布局等。
2.1.3Sqlite数据库介绍
Sqlite是一个轻量级的数据库,它包含在一个比较小的C库中。
它是D.Richardhipp建立的公有领域项目。
它是在Eclipse内部的数据库,当开发者需要一些不太复杂的数据库的时候,就可以使用Eclipse自带的数据库,不像常见的C/S范例,Sqlite引擎不是一个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。
所以主要的通信协议是在编程语言内的直接API调用。
这在消耗总量、延迟时间和整体简单性上有积极的作用。
整个数据库(定义、表、索引和数据本身)都在存在于主机上存储的一个单一的文件中。
它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
Sqlite数据库的主要特点如下:
1.不需要安装,在使用时直接使用Android的sql语句创建数据库即可;
2.数据保存在单一磁盘文件中,是一个完整的数据库文件;
3.数据库文件可以在不同字节顺序的机器间自由的共享;
4.支持数据库容量大,2TB;
5.占用空间小,大致13万行C代码,4.43M;
6.以I/O流的方式或加载到内存的方式操作文件,数据库操作比较快;
7.可以跨平台操作,且具有较高的移植性。
8.比较好的注释源代码,并且有着很高的测试覆盖率;
9.独立唯一,没有额外依赖;
10.源码完全的开源,你可以随意使用,包括出售它;
11.支持多种开发语言:
C,PHP,Java,C#等。
2.1.4Android简介及运行原理
Android是开放源码操作系统,它是以Linux和Java为基础的,主要适用于移动终端设备,该操作系统最初由AndyRubin开发,后被Google收购。
Android进行开发主要是对四大组件的应用,其四大组件分别为Activity、Service、BroadcastReceiver、ContentProvider。
其中,Activity主要是用来展现界面。
Service主要运行在后台提供服务。
BroadcastReceiver主要接收广播处理信息。
ContentProvider提供数据,可以使不同应用程序间数据共享。
一般情况下基于Android开发的应用程序主要是使用Activity,因为它使应用可视化,便于用户的操作和理解。
Android系统架构由5部分组成,它们是LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications,系统结构图如下图2-1所示。
图2-1Android系统结构图
运行原理:
当我们创建一个前台应用程序时,实质是实现一个Activity,我们可以通过这个Activity呈现出我们所设计的页面,并根据Activity的生命周期实现相关业务逻辑。
而一个后台应用则是没有界面的,其相关的业务逻辑主要在Service中实现。
在业务逻辑的实现过程中可能伴随着BroadcastReceiver、ContentProvider两大组件的应用。
以Activity为例解释如下:
super.onCreate(savedinstancestate);//是Activity生命周期的第一个方法,用作UI等初始化操作
setContentview(R.layout.activity_main);//加载Activity的布局文件(activity_main.xml)
2.2输入法消息传递机制
输入法框架(IMF)是由客户端、输入法服务(InputMethodManagerService,IMMS)、输入法应用(InputMethodService,IMS)三部分组成。
输入法的消息传递机制为IMMS负责管理系统的所有输入法,包括输入法service(IMS)加载及切换。
程序获得焦点时,就会通过InputMethodManager向InputMethodManagerService通知自己获得焦点并请求绑定自己到当前的输入法上。
InputConnection接口实现了BaseInputConnection和InputConnectiionWrapper接口,主要用于客户端和输入法之间的通信。
客户端通过InputConnection将输入码传给输入法后,输入法应用对输入码进行处理,处理完毕后需将得到的字符返回给客户端。
另外,客户端不能直接访问输入法程序,只能通过EditText这类输入控件访问InputMethodSession接口。
输入法的消息传递机制如下图2-2所示:
图2-2输入法消息传递机制
2.3可行性分析
本应用从经济可行性和技术可行性两方面来阐述。
1.经济可行性
该应用在开发过程中主要开发工具为PC机一台,Android系统的测试机一台,且投入人力资源少,软件开发成本低,因此在经济上是可行的。
2.技术可行性
技术可行性指在现有技术下能否完成性能目标,在限制条件下能否完成功能目标。
本设计在实现过程中采用的技术及语言都已经相当成熟,且在现有条件下没有什么难以克服技术问题,根据当前条件能够实现预定的功能、性能目标,因此在技术上是可行的。
2.4系统功能需求分析
输入法软件主要是针对移动终端设备开发的,主要目的是提高人们的输入速度,从而达到提高效率的目的。
本应用最终的性能目标就是易学、高效,能被广大人群接受,其大致的功能需求如下:
1、能够实现中文输入;
2、能够实现英文字符输入;
3、英文输入时可以转换大小写;
4、能够输入各种常用的标点符号;
5、在中文输入时可以产生联想词,以提高输入的速度;
6、可以增加按键效果,即在输入时有按键音效,如声音、振动;
7、联想词的产生是可控的,即有开关可以控制是否产生联想词;
8、有用户反馈功能,以便应用的功能完善升级。
采用用例图进行功能分析时就是以角色、用例及它们之间的关系所构成的视图来阐述
功能,从而清晰形象的表达出功能关系。
本设计的功能模块大致可以设置模块、输入模块、用户反馈模块,用例图如下图2-3所示。
图2-3用例分析图
由上述需求分析总结出各功能模块的关系为,用户在装入该输入法APP后可以通过终端设备的系统设置找到语言和键盘条目,然后将装入的输入法APP设置为系统默认的输入法,然后在通过该输入法设置对输入法功能做简要设置,例如是否开启按键音效、按键振动、是否开启联想词功能,设置完毕后可以通过任意应用触发输入法功能,触发后在输入时就会根据设置的功能显示按键效果。
在输入时中可以输入中英文两种语言,在进行英文输入时可以控制大小写,中文输入时可以产生联想词。
另外也可以切换到标点符号视图,进行符号输入。
若用户在使用过程中有建议提出,可以通过用户反馈页面将建议反馈给开发者,以便产品的升级。
2.5系统性能分析
由于本软件是终端设备必不可少的应用,其用户量广大,但其最基本也是最重要的性能就响应时间快,输入效率高,因此其性能指标如下:
所有操作的的平均响应时间<2秒。
2.6本章小结
本章主要对软件进行了需求分析,通过系统可行性分析、系统性能分析以及功能需求分析,总结出各功能模块的关系,为之后设计在实现前定制计划、分配任务提供参考与目标。
第3章系统设计
软件设计在整个软件开发过程中占据十分重要的地位。
好的设计可以使用户在使用过程中有一个好的用户体验,便于产品的推广。
从程序员角度来说,一个好的设计可以减少开发的难度和开发周期,在一定程度上也节约了开发成本,为公司带来更大的利益。
3.1输入法生命周期
输入法是用户与应用程序交互的中介,它是作为一个后台服务一直运行在后台,Android框架提供了一个输入法框架,它是可扩展的,允许应用程序向用户提供选择输入方式,例如键盘输入、语音输入等。
用户可以在系统设置中选择想要使用的输入法,有且只会有一个输入法服务运行在后台。
输入法的生命周期如下图3-1所示:
图3-1输入法生命周期
●onCreateInputiew():
创建软盘视图;
●onCreateCandldateViews():
创建候选区;
●onStartInput():
开始输入字符;
●onCurrentInputMethodSubtypeChanged():
当切换输入法语言时会调用该方法;
●onFinshInput():
输入字符完毕。
3.2软件功能结构设计
软件的功能结构即软件的功能模块。
在本设计中功能模块大致可以分为设置模块、输入模块,其中设置模块又包含输入法功能设置和用户反馈功能。
因为输入法必须要做到实时触发实时响应,所以在设计时将其作为一个后台长寿程序一直在后台运行,让其实时监听用户行为,一旦有用户请求输入法功能就立即弹出输入框,响应用户行为。
而用户使用输入法时可以进行中英文两种语言的切换、标点符号输入、阿拉伯数字输入满足了用户基本输入的需求。
又考虑到应用是为广大用户而设计,应尽可能的满足广大用户的需求,因此增加了用户反馈功能,以便应用的升级。
软件总体功能结构框架如下图3-2所示。
图3-2软件功能结构图
3.3软件设计流程
软件设计流程则是根据软件的功能需求以及用户的操作体验设计出软件实现后的模拟体验流程。
该过程十分重要,因为程序开发人员就是根据这一设计体验实现各个功能模块,在软件开发完成后其操作流程应与设计流程一致。
另外一个好地设计流程会有很好的用户体验,而且也会给开发人员在实现过程中省去很多不便,可以减少人力与财力的浪费。
本设计实现的流程图如下图3-3所示。
图3-3设计流程图
3.4数据存储设计
数据的存储在软件开发中具有很重要的作用,很多软件页面显示的数据、页面跳转的流程均是根据保存的数据而来。
数据存储有很多种方式,在Android中数据的存储主要有一下五种方式:
数据库存储、文件存储、网络存储、ContentProvider存储、SharedPreference存储。
这五种存储方式各具优缺点,其中数据库存储主要运用于数据量大、数据间关系相对复杂且有较多数据操作(增删改查)的应用。
SharedPreference存储方式适用于数据格式简单、数据间没有关联、数据量少的应用,一般主要存储应用的标记位、口令密码等。
而本应用选择的存储方式就是SharedPreference存储方式,因为本应用主要存储设置中的一些选项标志位,这些标记位的数据格式简单且数据量少,便于存储读取
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学士学位 论文 基于 android 输入法 设计 实现