平台中文输入法的设计和实现硕士学位

上传人:沈*** 文档编号:139632765 上传时间:2022-08-22 格式:DOC 页数:67 大小:1.53MB
收藏 版权申诉 举报 下载
平台中文输入法的设计和实现硕士学位_第1页
第1页 / 共67页
平台中文输入法的设计和实现硕士学位_第2页
第2页 / 共67页
平台中文输入法的设计和实现硕士学位_第3页
第3页 / 共67页
资源描述:

《平台中文输入法的设计和实现硕士学位》由会员分享,可在线阅读,更多相关《平台中文输入法的设计和实现硕士学位(67页珍藏版)》请在装配图网上搜索。

1、硕 士 学 位 论 文()Android手机平台上中文输入法的设计和实现The Design and Implementation of Chinese Input Method Based On on Android System研究生姓名 指引教师姓名 专业名称 计算机技术 研究方向 中文信息解决 论文提交日期 4月 苏州大学学位论文独创性声明及使用授权声明学位论文独创性声明本人郑重声明:所提交的学位论文是本人在导师的指引下,独立进行研究工作所获得的成果。除文中已经注明引用的内容外,本论文不含其她个人或集体已经刊登或撰写过的研究成果,也不含为获得苏州大学或其他教育机构的学位证书而使用过的材

2、料。对本文的研究做出重要奉献的个人和集体,均已在文中以明确方式标明。本人承当本声明的法律责任。研究生签名: 日 期: 学位论文使用授权声明苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合伙部、中国社科院文献信息情报中心有权保存本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其她复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,容许论文被查阅和借阅,可以发布(涉及刊登)论文的所有或部分内容。论文的发布(涉及刊登)授权苏州大学学位办办理。研究生签名: 日 期: 导师签名: 日 期: Android手机平台上中文输入法设计和实现中文摘要随着着

3、手持通信设备的日益普及和短信、微博等应用的广泛使用,人们越来越多地依赖于这些设备进行文字信息输入和解决。如何迅速精确地运用手持式设备输入文字信息,特别是中文信息,对中国人而言有助于重要。一方面,本文简介了Andriod的重要组件和系统框架等内容,并分析了当今移动平台上的主流中文输入法的优缺陷。另一方面,本文以纵横输入法为例简介了在Android平台下的码本的设计和检索技术,涉及字词码本构造的设计、索引方式的设计、联想功能的实现、码本的存储以及输入法具体的检索流程。最后,本文全面分析了Android系统平台的输入法框架,对该框架的构成、流程、生命周期以及某些所需实现的类和函数等进行了具体的论述。

4、在此基本上,在Andriod平台上设计并实现了纵横输入法,并简介了其实现技术。对实例输入系统的测试表白,该系统已达到了实用水平,并已有了一定规模的顾客群。核心词:输入法、Android、码本、输入架构作 者: 指引教师: The Design and Implementation of Chinese Input Method Based on Android SystemAbstractWith the widespread use of the increasing popularity of handheld communications mobile devices, and incr

5、easing popularity of short message, microblogging and other mobile applications, the requirement of inputting and processing text information, especially the Chinese information for us, on mobile devices is recreasing rapidly. the people increasingly rely on these devices for inputting and processin

6、g text information.It is important for Chinese people to input text information, especially the Chinese information, quickly and accurately with handheld devices.Firstly, this desertatione article describes the main components and systems framework of the Andriod, and then analyzes the advantages an

7、d disadvantages of the popular Chinese input methods on todaysall kinds of mobile platforms.Secondly, this articleit using uses the example of CKC input method as a sample to describes the design of code bookthe relation table between codes and their Chinese characters or phrases and the retrieval t

8、echnologymethod on the Android platform, including the structure design of code bookthe relation table, the design of indexing, the implement of association functions, the storage of the relation tablecode book, and specific retrieval processes of the input method. Finally, the articleit shows a com

9、prehensive analysis analyzes theof input method framework on the Android platform, and gives a detailed exposition of the framework components, circuit, life cycle and some of the necessary achieved classes, functions, and so on. On this basis, author it designedes and realizeds the CKC input method

10、 on the Andriod platform, and introduces its implemention technology.Tests of on the CKC input system on the Android platform show that the our system has reached a very practical level. Iand it already has been used on some extent.Key Words: Chinese input method; Android; code book; Input architect

11、ure Written by Sun XiaoSupervised by Li Peifeng目 录中文摘要IAbstractII目 录I第一章 绪论11.1 课题背景与意义11.3 研究现状21.3.1移动手机平台发呈现状21.3.2手机输入法发呈现状51.3 本文工作71)提出了一种适合Android平台的输入法码本设计方案72)分析了Android输入法框架,设计了一种基于Android平台的输入系统73)简介了Android平台输入系统的实现技术81.3 论文组织8第二章 有关工作基本92.1 Android平台92.1.1 Android平台简介92.1.2 Android 平台框架

12、102.1.3 Android 平台开发环境搭建112.2 纵横输入法132.2.1 纵横输入法简介132.2.2 纵横输入法长处132.3 输入法框架简介142.3.1 输入法框架简介142.3.2 输入法框架构成142.3.3 输入法应用构成152.3.4 输入法消息流转机制162.3.5 输入法生命周期182.3.5 输入法重要的类和函数192.4 本章小结20第三章 码本构造设计213.1 码本特点213.2 字码本构造213.3 词码本构造223.4 联想与码本存储243.5 检索过程243.6 本章小结25第四章 Android平台下输入法的设计与实现264.1 中文输入法的设计2

13、64.1.1 逻辑解决设计264.1.2 键盘界面设计274.1.3 候选字词界面设计294.1.4 消息流转设计294.1.5 候选字词查找设计304.2 中文输入法的实现324.2.1 键盘布局的实现324.2.2 初始化输入法334.2.3 消息捕获与传递344.2.4 消息解决364.2.5 数据查找与反馈394.3 本章小结41第五章 输入法的安装与使用425.1 输入法安装425.2 输入法使用435.2.1 切换输入法435.2.2 按键布局445.2.3 基本输入模式445.2.4 万能键的使用455.2.5 标点符号输入465.2.6 键盘切换465.3 输入法卸载475.4

14、 本章小结48第六章 总结与展望49参照文献50攻读学位期间公开刊登的论文52第一章 绪论1.1 课题背景与意义近年来,国内手机顾客数量以惊人的速度增长,工信部3月1日发布1月份通信业运营状况,数据显示,1月,全国电话顾客总数达到11.64亿户,其中移动电话顾客净增1072.0万户,达到8.7亿户1。手机终端功能的多样化和网络技术的迅速发展,也使手机的使用越来越普遍。而飞速增长的移动电话市场,同步也增进了移动产业价值链各个环节的共同发展,这其中就涉及了网络运营商、网络设备制造商、终端厂商乃至内容提供商等。随着着手持通信设备的日益普及,人们越来越多地依赖于通过这些设备进行信息解决和交流,因此如何

15、迅速精确地向手持式设备输入文字信息成为当今信息领域研究的热点之一。目前,手持通信设备使用的输入法重要为:数字键盘输入法、手写输入法以及全键盘输入法。由于手持设备自身硬件的限制,数字键盘输入法成为手机中最常用的输入法,然而目前,国内数字键盘中文输入的技术和市场重要被外国垄断,90%以上的手机嵌入的中文输入法技术使用的是国外技术和专利,我们使用的每台手机都必须给外国公司支付超过0.3美元的中文输入技术专利费,仅此一项,每年就要支付几亿元人民币。目前,美国的T9输入法和加拿大字源(eZiText)输入法约占国内手机数字键盘输入法市场的80%,而国产输入法市场占有率局限性20%2。然而即便这样,国外公

16、司的中文输入技术,仍缺少从中文的基本规律出发,来理解中文的系统性和科学性,不能从主线上彻底解决中文与信息输入技术的有机结合,在这种状况下,我们开发自己的国产手机输入法,不仅可觉得手机终端顾客提供最先进的中文输入技术,还可觉得手机生产商节省技术成本,同步为国家节省大笔外汇。在这种背景下,信息产业部在便发布了相应的技术原则用于规范数字键盘中文输入技术,通过技术原则的制定和实行,增进数字键盘中文输入技术进步3。国内也陆续推出了自己的输入法,例如由广东国笔科技有限公司推出的国笔智能输入法,腾凌智能数字键盘中文输入法等。然而,国外手机数码输入法已经占据了非常大的市场份额,以及国产中文输入技术的相对还不是

17、很成熟,国产手机数码输入法的发展仍有很艰巨的道路要走。本文所讨论的输入法为基于笔形的数码输入技术,此措施具有简、繁通用的特点。智能输入技术的引入极大地提高了中文输入系统的性能,最早该技术被拼音输入法用来解决由于同音字引起的重码问题,接着又被用来简化顾客输入,后来又被用来适应不同顾客的输入习惯,本文讨论如何将智能输入技术和中文输入技术结合起来,以实现输入法动态自适应的输入。以往,手机操作系统不开放编程接口,不支持第三方软件的开发。随着手机市场的竞争日益强烈以及手机终端功能的不断增强,越来越多的手机操作系统开放接口以便支持第三方软件的开发,像Windows Mobile操作系统、Symbian操作

18、系统、Smartphone 操作系统以及Android操作系统等。在中国智能手机操作系统市场上,Android发展迅速,其市场份额由的0.3%飙升至的14.3%。可见,Android系统的发展势头非常好,在国内手机操作系统市场份额必将领先其她,因此本文将Android系统作为纵横输入法的目的实现平台。对于本课题的实现,有如下意义: 将智能输入技术进一步应用与手机输入系统中,便于适应顾客的输入习惯,提高了顾客输入中文的速度。 利于增进国内数码中文输入技术的进步,提高国产输入法在市场中的竞争力。 对于多种输入法向手持设备上的移植具有借鉴意义。1.3 研究现状如今,智能移动设备正处在高速发展的阶段。

19、产品价格的不断合理化,也大力推动了智能手机的普及。它的发展同步也带动了其有关软件产品的发展,中文输入法软件就是其中之一,由于它是向中文顾客推广智能手机产品的必要前提4。1.3.1移动手机平台发呈现状初期手机由于功能单一且用途简朴,故其硬件设备也简朴,针对不同硬件设备开发的相应的手机操作系统成本较(手机中文输入法的设计与实现)低5。但随着手机功能逐渐的综合化和复杂化,软硬件成本逐渐增长,人们开始开发某些符合某些硬件原则的手机的操作系统,既可以以便顾客使用,也大大减少了手机生产的软件成本。智能手机也自此应运而生。后来,智能手机更是飞速发展,变化了人们的生活方式。智能手机具有五大特点:1、具有开放的

20、操作系统,可以自由安装第三方应用,使系统功能得到无限扩展;2、具有无线接入互联网的能力,即在GSM网络中需要支持GPRS,在CDMA网络中支持CDMA 1X或3G网络;3、具有PDA功能,涉及PIM(个人信息管理)、多媒体应用、浏览网页、日程记事等;4、功能强大,扩展性强,第三方支持多;5、人性化,可以根据个人需要扩展及其功能24。目前重要的手机智能操作系统涉及:Symbian、Android、Windows Phone、iOS、Palm OS、Linux等24。1. SymbianSymbian是由几家大型移动通讯设备商(诺基亚、摩托罗拉、三菱、爱立信及Psion等)共同出资成立的一家合资公

21、司,专门用于研发手机操作系统(Symbian OS)7,其目的是开发一种开放性的操作系统,使其能在手机及其她某些移动设备上运营。Symbian被诺基亚全额收购。Symbian是一套相称成熟的操作系统,具有强大的开放性和较低的研发成本,被授权的开发商能更自由的研发第三方软件,利润也是相称丰厚;运营环境稳定安全,效率也相称高,界面灵活简朴,顾客体验相称和谐,因此也稳坐智能手机市场冠军相称长一段时间。但是,Symbian也有某些致命的缺陷,直接导致了后来的失败结局。例如:一、Symbian机型的硬件配备普遍较低,各类机型所采用的屏幕辨别率和解决器主频都比较低,虽然系统可以获得较高的解决效能,但是在多

22、媒体等方面体现仍然不尽如人意。二、在多媒体方面,Symbian OS对主流的媒体格式的支持性较差。三、虽然Symbian OS为了适应不同的人群和各类的需要而采用了多种平台,但这也成为了Symbian发展一种障碍。每个平台之间的第三方软件不能互相兼容,软件开发商专注于单一平台,而减少了各个平台通用的软件个数,给顾客带了诸多不便。四、版本之间兼容性较差,每个新的版本的Symbian发布并且产品上市之后,诸多软件要开发商通过开发新的版本跟进,才干继续使用。五、对细节的注意不是很够。由于Symbian只提供厂商一种内核及UI,诸多细节功能是需要手机厂商进行添加的。而诸多手机厂商重点放在了多功能及综合

23、的性能等多方面,忽视了基本功能,以至于某些机型的闹钟功能都必须由第三方软件来实现,给不熟悉系统的顾客带来了诸多困难。2. AndroidAndroid是Google于11月5日提出的基于Linux平台的开源手机操作系统的名称,号称是首个为移动终端打造的真正开放的和完整的移动软件。Android系统重要厂商涉及美国摩托罗拉、韩国的三星、英国的索尼爱立信尚有诸多的中国厂商,例如:HTC、联想、华为、中兴等,使之跃居全球最受欢迎的智能手机平台,Android系统不仅应用于智能手机,也在平板电脑市场急速扩张。据市场调研公司尼尔森发布记录数据称,第二季度googleAndroid手机在美国的销量初次超过

24、了苹果iPhone,这也让诸多业内人士直呼将来是Android的8。3. iOSiOS是苹果公司为iPhone、iPod touch以及iPad开发的操作系统。iOS有顾客界面相称和谐,操作也很以便,系统性能稳定,丰富的第三方软件资源、服务也很完善等诸多长处。但是它的缺陷也是相称的多,如:一、系统内核源代码完全封闭的,并且只有获得苹果公司的授权的第三方软件开发者才干开发iOS软件。并且较多的开发平台限制也增长了第三方开发者的研发成本。二、其第三方软件中,大部分是付费软件。三、搭载iOS系统的苹果产品价格较为昂贵,让大部分消费者望而却步。因此致使其被之后的Android超越了。4. Linux嵌

25、入式Linux操作系统是指对原则Linux通过小型化裁剪解决之后,可以固化在容量只有几KB或者几MB字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统9。嵌入式Linux系统是智能手机操作系统的后来者,由于该系统免费开放源代码,国内外诸多公司致力于Linux操作系统和应用软件的开发10。其优势体现为如下几点11:a、 应用于智能手机上Linux操作系统和应用与电脑上的Linux操作系统是同一种系统,并且全都是是免费操作系统。在操作系统上免费就等于节省了产品的生成成本。b、 Linux操作系统系统资源占有率较低,并且性能比较稳定12,如果Linux平台的系统资源占用限

26、度,比体积庞大的Windows Mobile小的多。c、 Linux操作系统与JAVA互相融合,是任何一种操作系统所不能比拟的,Linux+JAVA的应用方式,可以给顾客极大的拓展空间。但是Linux也有诸多天生的缺陷,例如:a、 入门难度高、熟悉其开发环境的工程师少、集成开发环境不够完善。b、 由于微软PC操作系统源代码不公开,基于Linux的产品很难与PC进行连接。c、 从事Linux操作系统开发的公司虽然多,但缺少开发实力较强的公司,并且这些公司互相独立开发难以实现重大突破。因此Linux也很难抢占移动市场份额。5. Windows PhoneWindows Mobile系列彻底退出手机

27、操作系统市场后,微软于2月,又正式发布了Windows Phone手机操作系统以对抗google的Android和苹果的iPhone,该系统的程序将与Windows Mobile互不兼容。Windows Phone系统重要生产厂商有:三星,HTC,LG等。诺基亚也将把Windows Phone作为其智能手机的重要操作系统,并与微软达到战略合伙关系,这必将给移动操作系统领域带来新的活力。6. Palm OSPalm是Palm公司开发的一种32位嵌入式操作系统,重要应用于掌上电脑,其对硬件规定不高,使得采用Palm系统的设备体积较小巧,电池续航长24。Palm系统不仅占用系统资源少,硬件规定不高,

28、电池寿命长,并且系统简朴易用,采用了触控的操作界面,一种触控笔可以完毕几乎所有操作,十分以便携带。但是它也有诸多不完善的地方,如缺少某些常用基本功能,例如通讯功能和多媒体功能,中文产品也相对较少。1.3.2手机输入法发呈现状文字输入方式根据设备终端所采用的硬件,可分为数字键盘、全键盘及手写输入三大类2413。初期的手机中文输入法,用手机数字键29分别代表26个英文字母,如数字键2代表“ABC”三个字母1415;在输入时,输入2代表A,22代表B,222代表C。因此在输入拼音的时候需要一一选择需要的字母来构成拼音,然后根据拼音来选择需要的文字。这种输入法效率十分低的15。目前数字键盘输入法虽然种

29、类繁多,但重要市场份额基本上被T9、iTAP和字能(eZi)这三种输入法所占领101617,其她输入法的市场份额很少。这三款数字键盘输入软件,均提供拼音、笔画、注音(台湾地区)三种输入方式10。T9输入法全称T9智能输入法,该输入法是由语音技术、文字输入和图像解决方案提供商Nuance通讯公司开发的418,目前占有率最高。T9输入法是针对移动小型终端的文字输入解决方案,以输入字符高效快捷而著称19。T9的中文输入涉及简体中文和繁体中文,输入方式涉及笔画、拼音以及注音。目前已支持汉语、英语、法语德语、意大利语等44种语言,中文字库容量达9000多字17 19。字能输入法20是由总部设在加拿大的字

30、源征询技术有限公司和爱立信合伙推出的。此输入法具有20902个中文的高容量字库,是T9输入法字库的两倍多。该输入法重要被早起的爱立信、阿尔卡特以及某些国产手机如联想等采用。该输入法支持拼音和笔画两种中文简体输入方式,两种输入方式都具有联想功能15。iTAP输入法全称iTAP智能按键输入法,是摩托罗拉通过潜心研究,在T9的基本上发展起来的。摩托罗拉在美国加州设有专门的研究所,不断地对iTAP输入法软件字库进行更新,输入法软件支持20多种语言21,支持语言的种类比其她输入法软件都多。该输入法还可以根据最常用的声、韵母组合和最频繁使用的文字记录、声调和词语联想等先进技术,实现简便、快捷的输入17。国

31、内比较出名的手机输入法开发厂商重要有电讯、A4、搜狗和腾讯418,前两家都是专门从事手机输入法开发的厂商,目前它们分别被百度和腾讯收购。由于国内对中文的理解更深,也更加理解中文的输入习惯,事实上国产输入法在性能上不逊色于或优于海外输入法4。拼音输入法比目前国外同类技术快29%至41%,笔画输入法比国外同类技术快40%至51%,音形组合输入法比国外输入法快近70%422。由于手机设备大部分是海外生产的,直接捆绑了海外的输入法,导致了国内输入法难以提高占有率,打开市场。但是随着手机系统的不断开放,例如Android中完全开源的手机系统浮现后,顾客可以自行安装输入法,国产输入法将会得到迅猛的发展。1

32、.3 本文工作1)提出了一种适合Android平台的输入法码本设计方案合理的码本设计对于输入法来说有着非常重要的作用 ,直接关系到输入法的查询性能、所需存储空间等多种方面。一种输入法,如果占用过多的存储空间或者具有较差的输入性能,均不利于顾客的使用。然而这两个方面又是互相矛盾的,因此需要在输入法的性能与资源占用之间进行平衡。为了实现简繁通用,本文输入法采用了Unicode编码,并对码本进行了压缩。本文编码方案所需要的文献涉及字索引文献、字码本文献、词索引文献、词码本文献。本文具体简介了该编码方案,并从码本的构造、索引的构造以及输入法根据输入码检索码本的具体流程,对该编码方案进行了详尽的论述。2

33、)分析了Android输入法框架,设计了一种基于Android平台的输入系统Android手机系统平台,自Google公司发布以来,以其开放性、硬件选择的多样性和对第三方开发商较少的限制等多种因素,已经成为最流行的手机操作系统之一。本文具体简介了Android平台的各个功能组件以及平台框架构造等。而从Android平台1.5版本后来,Google更是开放了Android平台输入法框架(Input Method Framework,IMF),为Android平台的输入法带来了可扩展性。为了能开发出Android平台下的输入法,本文对Android平台的输入法框架进行了具体的简介。本文一方面简介了

34、Android输入法的生命周期以及它的几种重用构成部分,涉及:输入法服务,输入法应用和客户端。然后又重点简介了输入法应用的几种重要构成。最后还罗列了根据Android平台输入法框架中需要实现的几种重要的类以及几种重要的函数接口和这些接口的简要阐明。3)简介了Android平台输入系统的实现技术根据对Android平台输入法框架的分析,本文在Android平台上实现了一款新的中文输入法。本文一方面从输入法的逻辑解决、键盘视图设计、界面设计以及消息的流转以及解决等多方面,具体论述了该输入法的设计与实现的过程,另一方面又分析简介了本文所设计的输入法检索码本的具体流程。1.3 论文组织本文共分七章,论

35、文的构造和各个章节的重要内容如下:第一章,为全文概述,一方面简介了课题的研究背景与意义以及本文的工作安排。第二章,简介了与设计目的有关的基本工作,涉及简朴简介Android平台及其框架和Android开发平台的搭建,简介纵横输入法的有关基本知识,并分析其优缺陷,最后还全面简介了Android手机平台输入法的生命周期及其重要构成部分等,罗列了Android平台输入法框架中,所需实现的几种重要类及接口。第三章,简介了纵横输入法码本的特点,并从字词码本构造、索引构造以及码本检索流程等多方面,对纵横输入法的编码进行了具体的描述。第四章,先从逻辑解决、键盘界面、候选字词界面、消息流转、以及候选字词查找等

36、多方面对该输入法进行了设计。然后从键盘的布局、输入法的初始化、消息的捕获与传递、消息的解决以及数据的查询与反馈等多方面,具体地简介了Android平台上纵横输入法的实现流程。第五章,具体简介了该中文输入法的设立、安装、使用与卸载。第六章,总结全文,并展望下一步的研究工作。第二章 有关工作基本2.1 Android平台2.1.1 Android平台简介随着通信行业的迅速发展,手机已经成为人们生活中的必需品,手机的功能也越来越完善4。目前重要的手机智能操作系统涉及:Symbian OS, Windows Phone, Linux, Palm OS 和 Android23。由于操作系统的开放性、硬件

37、选择的多样性和对第三方开发商较少的限制等因素,Android系统已经成为最流行的手机操作系统之一,具有很大的发展前景。Android 本来的意思是机器人,同步它还是Google 在联合无线应用与移动技术领域的带头公司一起构成的手机联盟Open Handset Alliance 宣布的依托Linux 平台的开源手机操作系统的名称24。该系统涉及了操作系统、顾客界面、中间件和应用程序,是首个为移动终端打造的真正意义上的开放和完整的移动移动设备综合平台。Google 重新设计了Java 虚拟机和系统,使得Android 的Java 应用更接近于底层系统,效率更高;此外使用虚拟机技术使得Android

38、 的应用在被监控的状况下运营,安全性更高。与Windows CE ,iPhone OS ,Symbian 等不同,Android 公开源代码,支持第三方软件的加入,消除了任何以往阻碍移动产业创新的专有权障碍。正是由于其开放性,Google Android 手机可以加载诸多种性化的东西,例如防火墙、即时通信软件、Office阅读器、输入法等多种在电脑上安装使用的软件。无论是娱乐还是商业应用,智能手机的功能都能在强大的第三方软件的支持下获得无限的扩展25。丰富的Android 应用也使其手机功能更加强大,这加速了电脑与手机的融合,也加速了后PC 时代的到来。Android操作系统应用了开源社区的诸

39、多优秀成果,并做了大量的优化和丰富的扩大。Android操作系统重要涉及了如下功能组件26:1. 经Google 针对移动设备剪裁和优化的Linux 内核。2. 由Google 重新实现的Java 虚拟机 Dalvik VM。3. 大量的函数库和服务,如浏览器引擎WebKit ,数据库 SQLite。4. 常用的应用程序,如拨号程序和通讯录等。5. 一套完整的SDK(Software Development Kit ),提供了使用Java语言进行Android应用开发的API 类库和工具集(涉及Android 模拟器和Eclipse IDE 下的开发工具插件以及一组用于在模拟器和终端设备上打包

40、、安装、调试和测试的应用程序的工具)。6. 通过优化的轻量级2D 和3D 图形引擎,用于支持多种游戏的开发。7. 提供常用的音频、视频和图片格式支持的底层媒体库。8. 用于支持GSM 、蓝牙、3G 、WiFi 、摄像头、GPS 和多种输入设备的驱动程序。2.1.2 Android 平台框架Android 操作系统自顶向下分为4层,分别为应用层、应用框架层、函数库和虚拟机层以及Linux内核层 27。1. Linux 内核层位于硬件和其他软件层之间,采用YAFFS2 文献系统28,是基于Linux Version 2.6内核来开发的,涉及了虚拟CPU 和Android 运营所需要的特定的驱动代码

41、,重要作用为提供系统的如安全管理、内存机制、进程管理等底层服务,为系统运营提供基本性的支持30。2. Android 运营时库和其她库层,涉及一组核心库和Dalvik 虚拟机,核心库存为Android 提供了大部分Java语言核心库。Android具有丰富的库类支持且大部分为开源代码,如SQLite 、WebKit 、OpenGL等,例如SQLite数据库,体积小只有250KB但支持数据库大小至2TB,提供了对事务功能和并发解决的支持,并且比目前流行的大多数数据库运营速度快29。该层可以通过Java本地调用JNI(Java Native Interface)的接口函数来实现与上层之间的通信31

42、。3. 应用框架层涉及了所有开发所用的SDK类库和某些未公开接口的类库。该层为Android 开发人员提供了访问框架应用程序接口的所有权限,使开发人员能以便并安全地访问系统功能和其她应用程序所发布的功能供其她程序使用,并发布自己应用程序的功能。通过采用构造化设计,大大简化了组件之间的重用,提高了开发者的开发效率。应用框架层为开发者提供了大量的组件和服务,如:丰富和可扩展的视图、内容提供器、资源管理器、告知管理器、活动管理器和位置管理器等。4. 应用层涉及了Android自身的某些核心应用程序,例如邮件客户端,短信程序,日历程序,地图,浏览器,通讯录等等,尚有某些基于Google Android

43、 的SDK 开发的第三方应用程序。目前所有的应用程序都是由Java语言开发的12。Android 平台构造图如图4.1所示。图2.1 Android平台框架2.1.3 Android 平台开发环境搭建Android应用程序重要的开发语言为Java 语言,重要的集成开发环境为Eclipse软件,并且Google 提供了在Eclipse下迅速开发Android 应用程序的插件ADT 。ADT 是Android Development Tools 的缩写,它是集成到Eclipse 上的一种插件,可以提供一种强大的集成开发环境来开发Android 应用。搭建Android开发平台的流程如下:1. 软件

44、准备a、 进入Java官网()页面下载jdk1.6+;b、 进入Eclipse官网()下载Eclipse 3.3(Europa); c、 进入Google Android 官网()下载Android SDK;2. 安装集成平台和配备Java环境变量a、 安装JDK 并配备好Java 环境变量b、 安装Eclipse将下载的Eclipse压缩包解压到相应的安装目录即可。3. 配备Android 平台开发环境a、 安装Android Development Tools (ADT )插件启动Eclipse ,如果是Eclipse3.5 或Eclipse3.6 选择Help -Install New

45、Software. ,点击Add ,如果Eclipse3.4及如下版本菜单是Help -Software Updates. ,点击Add Site 准备安装插件。在Location 中输入Android ADT插件在线下载地址: ,点击OK按钮就可如下载安装了。b、 应用Android SDK到Eclipse在Eclipse 工具栏中,选择:Window - Preferences.左边菜单中选中android,在右边浏览框中选择sdk的解压目录作为 sdk location,点击Apply ,然后点击OK按钮即可。为了便于模拟和测试应用程序,Android SDK自带一种移动模拟设备可以在电

46、脑上运营的虚拟设备。模拟器容许开发者开发的应用程序通过Android 平台服务,调用其她程序、访问网络、播放音频和视频、保存和接受数据、告知顾客、渲染图像过渡和场景等功能。通过Eclipse的“窗体”(Windows)菜单-“Android虚拟设备管理器”(Android AVD manager)进入Android虚拟设备管理界面,然后点击“New”按钮弹出创立AVD对话框,在该窗口中添加Name(AVD名称)、Target(Android版本指定)、SDK大小和外观特性,即可完毕对Android模拟器的创立工作。通过Eclipse的“窗体”(Windows)菜单-“Android虚拟设备管理

47、器”(Android AVD manager)进入Android虚拟设备管理界面,选择要启动的Emulator,然后点击“start”按钮,进入Emulator启动界面,点击“launch”按钮,完毕所选模拟器的启动后,即可进行有关模拟测试程序。2.2 纵横输入法2.2.1 纵横输入法简介纵横输入法是由香港苏浙同乡会主席周忠继先生所发明,由苏州大学纵横中文信息技术研究所研制。通过近年不断地完善,在北京、上海、江苏、浙江、广东、海南、香港、澳门等地大受欢迎。 在纵横码中根据中文的字形,采用0到9十个数字对中文进行编码。纵横码中规定了十种基本笔形,分别用0到9十个数字对其进行编码。 一种中文的基本

48、编码措施为:将中文当作一种方块字,取中文四个角的笔形代码作为一种中文的编码,输入法规定单字的输入码最多为四个数字,至少为一种数字。 词组的输入码根据构成词组的单字的输入码来取,词组的输入码最多为六个数字,至少为一种数字。2.2.2 纵横输入法长处目前手机上较有影响力的输入法有笔画类输入法和拼音类输入法。 拼音输入法虽然易学却很难普及,不适合一般话不原则不熟悉汉语拼音者学习,在方言地区推广就更困难。 一般的笔画类输入法又存在重码率高,词库较小、标点符号输入不以便、辅助顾客使用功能较弱等缺陷,影响顾客输入效率。 纵横输入法克服了以上几种输入法的缺陷,词库很大、标点符号输入以便。采用GBK大字符集,

49、既支持简体字输入又支持繁体字输入,具有简朴易学、简繁通用、词组丰富、功能强大,标点符号输入以便,还可以对重码字词进行调频,具有辅助顾客使用等长处32。2.3 输入法框架简介2.3.1 输入法框架简介自Android平台1.5版本后来,Google开放了Android平台输入法框架(Input Method Framework,IMF),IMF是Android平台的特色设计。它的浮现大大推动了不带实体键盘的设备的诞生。同步,Android平台输入法框架也给出了输入法的开发所需要的接口,为Android平台的输入法提供了可扩展性。2.3.2 输入法框架构成一种输入法框架构造中涉及三个重要的部分:输

50、入法服务,负责管理各部分的交互,管理输入法应用,其中涉及输入法的安装、注册、激活等。重要工作由InputMethdoManagerService(IMMS)完毕。它是一种客户端API,存在于各个应用程序的上下文(context)中,用来沟通管理所有进程间交互的全局系统服务。输入法应用 ,具体解决顾客输入行为的应用程序,实现一种容许顾客生成文本的独立交互模块。系统绑定一种目前的输入法。使其创立和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一种输入法应用运营。为了可以在Android的输入法框架中良好的运营,所有的输入法应用都需要继承特定的服务。客户端,是指具有文字编辑功能的系统控件(

51、如EditText),是平台内部输入法应用人机交互的起点,是顾客与输入法应用进行交互的渠道。客户端控件与输入法服务和输入法应用均有交互操作。当客户端控件接受到焦点时,控件启动输入法应用并显示键盘;而失去焦点时,则隐藏键盘。同步可以传递控件状态,接受并显示输入法应用反馈的输入文字。客户端通过输入法管理器控制输入焦点和IME的状态。一次只能有一种客户端使用输入法。输入法整体框架图2.2所示。图2.2 输入法的总体框架2.3.3 输入法应用构成Android 平台的输入法框架(Input Method Framework,IMF)中,最重要的是输入法应用(InputMethodService),她继

52、承于Abstract Input MethodService 。InputMethodService重要由如下几种组件构成,其中涉及完毕输入法的有关UI,和文字的输出:1. 软键盘视图(Soft Input View)这是软键盘的输入区域,重要完毕在触摸屏下和顾客的交互输入。onCreateInputView()被调用来进行软键盘视图的实例化;onEvaluateInputViewShown() 决定与否显示软键盘视图;当状态变化的时候,调用updateInputViewShown()来重新决策与否显示软键盘视图。2. 候选字视图(Candidates View)Candidates View

53、也是输入法中一种相称重要的组件。当顾客输入字符的时候,显示有关的列表。停止输入的时候,有会自动消失。onCreateCandidatesView()来实例化自己的输入法。和软键盘视图不同的是,候选字视图对整个UI布局不会产生影响。setCandidatesViewShown(boolean) 用来设立与否显示候选字视图。3. 输出字符字符的输出是InputMethodService最核心的功能,输入法通过 InputConnection 从IMF来获得字符输出。并且通过不同的编辑器(editor)类型来获取相应的支持。通过 onFinishInput()和onStartInput(Editor

54、Info, boolean )措施来进行输入目的的切换。 此外,onInitializeInterface()用于InputMethodService在执行的过程中配备的变化; onBindInput()切换一种新的输入通道; onStartInput(EditorInfo, boolean)解决一种新的输入。2.3.4 输入法消息流转机制输入法框架涉及客户端、输入法服务和输入法应用三部分构成,如图2.3所示。输入法框架中消息的流转机制为:当客户端获得焦点,启动输入法,创立一种连接类型对象,以实现输入法框架各个层次间信息的传播。该连接类型实现了InputConnection接口。图2.3 输入

55、法消息流转InputConnection接口是输入法框架(IMF)里面一种重要的接口,它实现了BaseInputConnection和InputConnectionWrapper上层的接口,重要用于应用程序和InputMethod之间通信的通道,可以实现涉及读取光标周边的输入,向文本框中输入文本以及给应用程序发送多种按键事件。其中接口InputMethod是AbstractInputMethodService和InputMethodService的上层接口,可以产生多种按键事件和多种字符文本。客户端通过InputConnection将输入码传给输入法应用后,输入法应用对输入码进行有关的解决。当

56、输入法应用对输入码解决完毕后,需要将解决后得到的文字等数据内容,反馈给客户端控件。客户端不可直接访问输入法程序,只可以通过某些输入控件访问InputMethodSession接口。每个客户端创立一种接口实例,只有与激活客户有关联的会话的调用才会被输入法(IME)解决。这是通过输入法(IME)的 AbstractInputMethodService来执行,由输入法(IME)显式的解决,而输入法(IME)正是InputMethodSession的自定义实现。InputMethodSession是输入法应用提供应每个客户端的,可安全地暴露在应用程序中的接口。应用程序一般不自己使用本接口,而是依托Te

57、xtView和EditText等提供的原则进行交互。InputMethodSession接口需要由InputMethodService和 InputMethodSessionImpl 实现。2.3.5 输入法生命周期输入法是顾客、应用程序之间的交互的渠道,所有的输入法应用都需要继承特定的Android平台提供的服务。Android平台的输入法框架为输入法应用定义了一种基类InputMethodService, InputMethodService提供了一种输入法的原则实现流程,定义了输入法生命周期内的重要函数,以以便开发人员对Android输入法进行扩展。图2.4便为Android输入法生命周

58、期。文本输入后如何分支图2.4 Android 输入法生命周期具体为: 当顾客点击客户端输入控件(如editor)时,客户端控件获得焦点,InputMethodService启动,调用其onCreate() 函数。该函数在输入法第一次启动的时候被调用,用来做初始化的设立; 调用onCreateInputView() 函数,在该函数中创立键盘视图(KeyboardView)并返回; 调用onCreateCandidatesView()函数,在该函数中创立候选字视图(Candidates View)实现并返回; 调用onStartInput ()函数,开始接受并解决输入内容; 输入结束后调用onF

59、inishInput()函数来结束目前的输入; 如果移动到下一种输入框则反复调用onStartInputView和onFinishInput函数; 在输入法关闭的时候调用onDestroy() 函数。2.3.5 输入法重要的类和函数在Android输入法开发过程中,下面三个类的实现比较重要:InputMethodService类:提供了诸多的输入法的基本实现,管理状态的条款、输入法的可见度、与目前可见的Activity沟通;CandidateView类:提供候选字选择视图,直接继承于View。负责显示软键盘上面的那个候选区域。LatinKeyboard类:软键盘类,直接继承与Keyboard类

60、。负责解析并保存键盘布局,并提供选词算法,供程序运营当中使用。其中键盘布局是以XML文献寄存在资源当中的。Android的输入法服务,通过某些接口函数与系统进行交互,在这些接口中,重要接口是InputMethodService 。它提供了一种输入法的原则实现,开发输入法时可以参照和自定义该实现,表2.1显示了InputMethodService接口提供的函数。表2.1 InputMethodService接口提供的函数重要接口函数阐明onInitializeInterface进行UI的初始化,创立和修改时调用此接口onBinndInput在此外的客户端和该输入法连接时调用onStartInpu

61、t初始化整个输入法 ,非常重要的一种回调,它在编辑框中顾客已经开始输入的时候调用onCreateInputView创立输入视图,返回一种层次性的输入视图,并且只是在这个视图第一次显示的时候被调用 onCreateCandidatesView创立候选框视图,当需要候选框显示时调用onCreateExtractTextView全屏模式下的视图onStartInputView在输入视图被显示并且在一种新的输入框中输入已经开始的时候调用getCurrentInputConnection此函数呼喊应用程序,接受原始的按键事件onFinishInput结束输入法表2.1 InputMethodServic

62、e接口提供的函数2.4 本章小结本章一方面简朴简介了Android 平台的基本知识,简介了Android 操作系统的几种重要组件,和Android 操作系统平台的基本框架构造。接着,本章还简介了纵横输入法的某些基本知识,并结合当下Android 手机上已有的输入法,简介了纵横输入法的长处。最后,本章系统地简介了Android平台的输入法框架。简介了输入法框架的三个构成部分(输入法服务、输入法应用、客户端),然后又具体简介了输入法应用的几种重要成部分,输入法内部消息的流转机制,和输入法的生命周期,并罗列了Android系统开发过程中重要的三个类,以及输入法服务(InputMethodServic

63、e)提供的部分重要的接口函数名称以及每个函数所相应的简要阐明。第三章 码本构造设计3.1 码本特点合理的编码设计对于输入法来说有着非常重要的作用32 ,直接关系到输入法的查询性能、所需存储空间等多种方面。一种输入法,如果占用过多的存储空间或者具有较差的输入性能,均不利于顾客的使用。然而这两个方面又是互相矛盾的,因此需要在输入法的性能与资源占用之间进行平衡。在本输入法中,为了实现输入码对照表的简繁通用,系统采用的编码为Unicode编码,同步为了节省存储空间,需要将码本进行压缩存储,通过为码本添加索引文献的方式压缩码本,下面会具体简介。因此此编码方案所需要的文献涉及字索引文献、字码本文献、词索引文献、词码本文献。3.2 字码本构造字码本的存储分为字索引文献和字码本文献。I) 字索引字索引是输入码到中文的纽带,能从索引项中得

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!