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

上传人:痛*** 文档编号:82494997 上传时间:2022-04-29 格式:DOC 页数:78 大小:1.49MB
收藏 版权申诉 举报 下载
Android平台中文输入法设计和实现—硕士学位论文_第1页
第1页 / 共78页
Android平台中文输入法设计和实现—硕士学位论文_第2页
第2页 / 共78页
Android平台中文输入法设计和实现—硕士学位论文_第3页
第3页 / 共78页
资源描述:

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

1、The design and Implement of Chinese input system Based on Dynamic self-adaptation AbstractLanguage mode Android平台中文输入法设计和实现中文摘要伴随着手持通信设备的日益普及和短信、微博等应用的广泛使用,人们越来越多地依赖于这些设备进行文字信息输入和处理。如何快速准确地利用手持式设备输入文字信息,特别是中文信息,对中国人而言有利于重要。首先,本文介绍了Andriod的主要组件和系统框架等内容,并分析了当今移动平台上的主流汉字输入法的优缺点。其次,本文以纵横输入法为例介绍了在Android

2、平台下的码本的设计和检索技术,包括字词码本结构的设计、索引方式的设计、联想功能的实现、码本的存储以及输入法具体的检索流程。最后,本文全面分析了Android系统平台的输入法框架,对该框架的组成、流程、生命周期以及一些所需实现的类和函数等进行了详细的阐述。在此基础上,在Andriod平台上设计并实现了纵横输入法,并介绍了其实现技术。对实例输入系统的测试表明,该系统已达到了实用水平,并已经有了一定规模的用户群。关键词:输入法、Android、码本、输入架构The Design and Implementation of Chinese Input Method on Android Abstrac

3、tWith the widespread use of mobile devices and increasing 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. .Firstly, this deserta

4、tion describes the main component and system framework of Andriod, and then analyzes the advantages and disadvantages of the popular Chinese input methods on all kinds of mobile platforms.Secondly, it uses CKC input method as a sample to describe the design of the relation table between codes and th

5、eir Chinese characters or phrases and the retrieval method on the Android platform, including the structure of the relation table, the indexing, the association functions, the storage of the relation table, and specific retrieval processes of the input method. Finally, it analyzes the input method f

6、ramework 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, it designes and realizes the CKC input method on the Andriod platform, and introduces its implemention te

7、chnology.Tests on the CKC input system on the Android platform show that our system has reached a very practical leveland it already has been used on some extent.Key Words: Chinese input method; Android; code book; Input architecture IV目 录中文摘要IAbstractII目 录I第一章 绪论11.1 课题背景与意义11.3 研究现状21.3.1移动手机平台发展现

8、状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 平台框架102.1.3 Android 平台开发环境搭建112.2 纵横输入法132.2.1 纵横输入法简介132.2.2 纵横输入法优点132.3 输入法框架介绍142.3.1 输入法框架简介142.3.2 输入法框架组成142

9、.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 中文输入法的设计264.1.1 逻辑处理设计264.1.2 键盘界面设计274.1.3 候选字词界面设计294.1.4 消息流转设计294.1.5 候选字词查找设计304.2 中文输入法的实现324.2.1 键盘布局的实现324.2.2 初

10、始化输入法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 本章小结48第六章 总结与展望49参考文献50攻读学位期间公开发表的论文52第一章 绪论1.1 课题背景与意义近年来,我国手机用户数量以惊人的速度增长,工信部2011年3月1日发布2011年1月份通信业运行状况,数据显示

11、,2011年1月,全国电话用户总数达到11.64亿户,其中移动电话用户净增1072.0万户,达到8.7亿户1。手机终端功能的多样化和网络技术的快速发展,也使手机的使用越来越普遍。而飞速增长的移动电话市场,同时也促进了移动产业价值链各个环节的共同发展,这其中就包括了网络运营商、网络设备制造商、终端厂商乃至内容提供商等。伴随着手持通信设备的日益普及,人们越来越多地依赖于通过这些设备进行信息处理和交流,因此如何快速准确地向手持式设备输入文字信息成为当今信息领域研究的热点之一。目前,手持通信设备使用的输入法主要为:数字键盘输入法、手写输入法以及全键盘输入法。由于手持设备本身硬件的限制,数字键盘输入法成

12、为手机中最常用的输入法,然而现在,我国数字键盘汉字输入的技术和市场主要被外国垄断,90%以上的手机嵌入的汉字输入法技术使用的是国外技术和专利,我们使用的每台手机都必须给外国公司支付超过0.3美元的汉字输入技术专利费,仅此一项,每年就要支付几亿元人民币。目前,美国的T9输入法和加拿大字源(eZiText)输入法约占我国手机数字键盘输入法市场的80%,而国产输入法市场占有率不足20%2。然而即便这样,国外公司的中文输入技术,仍缺乏从汉字的基本规律出发,来理解汉字的系统性和科学性,不能从根本上彻底解决汉字与信息输入技术的有机结合,在这种情况下,我们开发自己的国产手机输入法,不仅可以为手机终端用户提供

13、最先进的汉字输入技术,还可以为手机生产商节约技术成本,同时为国家节省大笔外汇。在这种背景下,信息产业部在2007年便公布了相应的技术标准用于规范数字键盘汉字输入技术,通过技术标准的制定和实施,促进数字键盘汉字输入技术进步3。国内也陆续推出了自己的输入法,例如由广东国笔科技有限公司推出的国笔智能输入法,腾凌智能数字键盘中文输入法等。然而,国外手机数码输入法已经占据了非常大的市场份额,以及国产汉字输入技术的相对还不是很成熟,国产手机数码输入法的发展仍有很艰巨的道路要走。本文所讨论的输入法为基于笔形的数码输入技术,此方法具有简、繁通用的特点。智能输入技术的引入极大地提高了汉字输入系统的性能,最早该技

14、术被拼音输入法用来解决由于同音字引起的重码问题,接着又被用来简化用户输入,后来又被用来适应不同用户的输入习惯,本文讨论如何将智能输入技术和中文输入技术结合起来,以实现输入法动态自适应的输入。以往,手机操作系统不开放编程接口,不支持第三方软件的开发。随着手机市场的竞争日益强烈以及手机终端功能的不断增强,越来越多的手机操作系统开放接口以便支持第三方软件的开发,像Windows Mobile操作系统、Symbian操作系统、Smartphone 操作系统以及Android操作系统等。在中国智能手机操作系统市场上,Android发展迅速,其市场份额由2008年的0.3%飙升至2010年的14.3%。可

15、见,Android系统的发展势头非常好,在国内手机操作系统市场份额必将领先其他,因此本文将Android系统作为纵横输入法的目标实现平台。对于本课题的实现,有如下意义: 将智能输入技术进一步应用与手机输入系统中,便于适应用户的输入习惯,提高了用户输入汉字的速度。 利于促进国内数码汉字输入技术的进步,提高国产输入法在市场中的竞争力。 对于各种输入法向手持设备上的移植具有借鉴意义。1.3 研究现状如今,智能移动设备正处于高速发展的阶段。产品价格的不断合理化,也大力推动了智能手机的普及。它的发展同时也带动了其相关软件产品的发展,汉字输入法软件就是其中之一,因为它是向汉字用户推广智能手机产品的必要前提

16、4。1.3.1移动手机平台发展现状早期手机由于功能单一且用途简单,故其硬件设备也简单,针对不同硬件设备开发的相应的手机操作系统成本较(手机中文输入法的设计与实现)低5。但随着手机功能逐渐的综合化和复杂化,软硬件成本逐渐增加,人们开始开发一些符合某些硬件标准的手机的操作系统,既可以方便用户使用,也大大降低了手机生产的软件成本。智能手机也自此应运而生。2005年以后,智能手机更是飞速发展,改变了人们的生活方式。智能手机具有五大特点:1、具有开放的操作系统,可以自由安装第三方应用,使系统功能得到无限扩展;2、具有无线接入互联网的能力,即在GSM网络中需要支持GPRS,在CDMA网络中支持CDMA 1

17、X或3G网络;3、具有PDA功能,包括PIM(个人信息管理)、多媒体应用、浏览网页、日程记事等;4、功能强大,扩展性强,第三方支持多;5、人性化,可以根据个人需要扩展及其功能24。目前主要的手机智能操作系统包括:Symbian、Android、Windows Phone、iOS、Palm OS、Linux等24。1. SymbianSymbian是由几家大型移动通讯设备商(诺基亚、摩托罗拉、三菱、爱立信及Psion等)共同出资成立的一家合资公司,专门用于研发手机操作系统(Symbian OS)7,其目标是开发一种开放性的操作系统,使其能在手机及其他一些移动设备上运行。2008年Symbian被

18、诺基亚全额收购。Symbian是一套相当成熟的操作系统,具有强大的开放性和较低的研发成本,被授权的开发商能更自由的研发第三方软件,利润也是相当丰厚;运行环境稳定安全,效率也相当高,界面灵活简单,用户体验相当友好,因此也稳坐智能手机市场冠军相当长一段时间。不过,Symbian也有一些致命的缺点,直接导致了后来的失败结局。例如:一、Symbian机型的硬件配置普遍较低,各类机型所采用的屏幕分辨率和处理器主频都比较低,虽然系统可以获得较高的处理效能,但是在多媒体等方面表现仍然不尽如人意。二、在多媒体方面,Symbian OS对主流的媒体格式的支持性较差。三、虽然Symbian OS为了适应不同的人群

19、和各类的需要而采用了多种平台,但这也成为了Symbian发展一个障碍。每个平台之间的第三方软件不能相互兼容,软件开发商专注于单一平台,而减少了各个平台通用的软件个数,给用户带了很多不便。四、版本之间兼容性较差,每个新的版本的Symbian发布并且产品上市之后,很多软件要开发商通过开发新的版本跟进,才能继续使用。五、对细节的注意不是很够。由于Symbian只提供厂商一个内核及UI,很多细节功能是需要手机厂商进行添加的。而很多手机厂商重点放在了多功能及综合的性能等多方面,忽略了基本功能,以至于一些机型的闹钟功能都必须由第三方软件来实现,给不熟悉系统的用户带来了很多困难。2. AndroidAndr

20、oid是Google于2007年11月5日提出的基于Linux平台的开源手机操作系统的名称,号称是首个为移动终端打造的真正开放的和完整的移动软件。Android系统主要厂商包括美国摩托罗拉、韩国的三星、英国的索尼爱立信还有很多的中国厂商,例如:HTC、联想、华为、中兴等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。据市场调研公司尼尔森发布统计数据称,2010年第二季度谷歌Android手机在美国的销量首次超过了苹果iPhone,这也让诸多业内人士直呼未来是Android的8。3. iOSiOS是苹果公司为iPhone、iPod touch

21、以及iPad开发的操作系统。iOS有用户界面相当友好,操作也很方便,系统性能稳定,丰富的第三方软件资源、服务也很完善等很多优点。但是它的缺点也是相当的多,如:一、系统内核源代码完全封闭的,并且只有获得苹果公司的授权的第三方软件开发者才能开发iOS软件。并且较多的开发平台限制也增加了第三方开发者的研发成本。二、其第三方软件中,大部分是付费软件。三、搭载iOS系统的苹果产品价格较为昂贵,让大部分消费者望而却步。所以致使其被之后的Android超越了。4. Linux嵌入式Linux操作系统是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储器芯片或者单片机中,适

22、合于特定嵌入式应用场合的专用Linux操作系统9。嵌入式Linux系统是智能手机操作系统的后来者,由于该系统免费开放源代码,国内外很多公司致力于Linux操作系统和应用软件的开发10。其优势表现为以下几点11:a、 应用于智能手机上Linux操作系统和应用与电脑上的Linux操作系统是同一个系统,而且全都是是免费操作系统。在操作系统上免费就等于节省了产品的生成成本。b、 Linux操作系统系统资源占有率较低,而且性能比较稳定12,如果Linux平台的系统资源占用程度,比体积庞大的Windows Mobile小的多。c、 Linux操作系统与JAVA相互融合,是任何一个操作系统所不能比拟的,Li

23、nux+JAVA的应用方式,能够给用户极大的拓展空间。不过Linux也有很多天生的缺点,例如:a、 入门难度高、熟悉其开发环境的工程师少、集成开发环境不够完善。b、 由于微软PC操作系统源代码不公开,基于Linux的产品很难与PC进行连接。c、 从事Linux操作系统开发的公司虽然多,但缺乏开发实力较强的公司,并且这些公司相互独立开发难以实现重大突破。因此Linux也很难抢占移动市场份额。5. Windows PhoneWindows Mobile系列彻底退出手机操作系统市场后,微软于2010年2月,又正式发布了Windows Phone手机操作系统以对抗谷歌的Android和苹果的iPhon

24、e,该系统的程序将与Windows Mobile互不兼容。Windows Phone系统主要生产厂商有:三星,HTC,LG等。诺基亚也将把Windows Phone作为其智能手机的主要操作系统,并与微软达成战略合作关系,这必将给移动操作系统领域带来新的活力。6. Palm OSPalm是Palm公司开发的一种32位嵌入式操作系统,主要应用于掌上电脑,其对硬件要求不高,使得采用Palm系统的设备体积较小巧,电池续航长24。Palm系统不但占用系统资源少,硬件要求不高,电池寿命长,而且系统简单易用,采用了触控的操作界面,一个触控笔可以完成几乎所有操作,十分方便携带。不过它也有很多不完善的地方,如缺

25、少一些常用基本功能,比如通讯功能和多媒体功能,中文产品也相对较少。1.3.2手机输入法发展现状文字输入方式根据设备终端所采用的硬件,可分为数字键盘、全键盘及手写输入三大类2413。早期的手机汉字输入法,用手机数字键29分别代表26个英文字母,如数字键2代表“ABC”三个字母1415;在输入时,输入2代表A,22代表B,222代表C。所以在输入拼音的时候需要一一选择需要的字母来组成拼音,然后根据拼音来选择需要的文字。这种输入法效率十分低的15。目前数字键盘输入法虽然种类繁多,但主要市场份额基本上被T9、iTAP和字能(eZi)这三种输入法所占领101617,其他输入法的市场份额极少。这三款数字键

26、盘输入软件,均提供拼音、笔画、注音(台湾地区)三种输入方式10。T9输入法全称T9智能输入法,该输入法是由语音技术、文字输入和图像解决方案提供商Nuance通讯公司开发的418,目前占有率最高。T9输入法是针对移动小型终端的文字输入解决方案,以输入字符高效快捷而著称19。T9的中文输入包括简体中文和繁体中文,输入方式包括笔画、拼音以及注音。目前已支持汉语、英语、法语德语、意大利语等44种语言,中文字库容量达9000多字17 19。字能输入法20是由总部设在加拿大的字源咨询技术有限公司和爱立信合作推出的。此输入法具有20902个汉字的高容量字库,是T9输入法字库的两倍多。该输入法主要被早起的爱立

27、信、阿尔卡特以及一些国产手机如联想等采用。该输入法支持拼音和笔画两种中文简体输入方式,两种输入方式都具有联想功能15。iTAP输入法全称iTAP智能按键输入法,是摩托罗拉经过潜心研究,在T9的基础上发展起来的。摩托罗拉在美国加州设有专门的研究所,不断地对iTAP输入法软件字库进行更新,输入法软件支持20多种语言21,支持语言的种类比其他输入法软件都多。该输入法还能够根据最常用的声、韵母组合和最频繁使用的文字统计、声调和词语联想等先进技术,实现简便、快捷的输入17。国内比较知名的手机输入法开发厂商主要有电讯、A4、搜狗和腾讯418,前两家都是专门从事手机输入法开发的厂商,目前它们分别被百度和腾讯

28、收购。因为国内对中文的理解更深,也更加了解中文的输入习惯,实际上国产输入法在性能上不逊色于或优于海外输入法4。拼音输入法比目前国外同类技术快29%至41%,笔画输入法比国外同类技术快40%至51%,音形组合输入法比国外输入法快近70%422。由于手机设备大部分是海外生产的,直接捆绑了海外的输入法,导致了国内输入法难以提高占有率,打开市场。不过随着手机系统的不断开放,例如Android中完全开源的手机系统出现后,用户可以自行安装输入法,国产输入法将会得到迅猛的发展。1.3 本文工作1)提出了一个适合Android平台的输入法码本设计方案合理的码本设计对于输入法来说有着非常重要的作用 ,直接关系到

29、输入法的查询性能、所需存储空间等多个方面。一种输入法,如果占用过多的存储空间或者具有较差的输入性能,均不利于用户的使用。然而这两个方面又是相互矛盾的,所以需要在输入法的性能与资源占用之间进行平衡。为了实现简繁通用,本文输入法采用了Unicode编码,并对码本进行了压缩。本文编码方案所需要的文件包括字索引文件、字码本文件、词索引文件、词码本文件。本文详细介绍了该编码方案,并从码本的结构、索引的结构以及输入法根据输入码检索码本的具体流程,对该编码方案进行了详尽的阐述。2)分析了Android输入法框架,设计了一个基于Android平台的输入系统Android手机系统平台,自Google公司2007

30、年发布以来,以其开放性、硬件选择的多样性和对第三方开发商较少的限制等各种因素,已经成为最流行的手机操作系统之一。本文详细介绍了Android平台的各个功能组件以及平台框架结构等。而从Android平台1.5版本以后,Google更是开放了Android平台输入法框架(Input Method Framework,IMF),为Android平台的输入法带来了可扩展性。为了能开发出Android平台下的输入法,本文对Android平台的输入法框架进行了详细的介绍。本文首先介绍了Android输入法的生命周期以及它的几个重用组成部分,包括:输入法服务,输入法应用和客户端。然后又重点介绍了输入法应用的

31、几个重要组成。最后还罗列了根据Android平台输入法框架中需要实现的几个重要的类以及几个重要的函数接口和这些接口的简要说明。3)介绍了Android平台输入系统的实现技术根据对Android平台输入法框架的分析,本文在Android平台上实现了一款新的汉字输入法。本文首先从输入法的逻辑处理、键盘视图设计、界面设计以及消息的流转以及处理等多方面,详细阐述了该输入法的设计与实现的过程,其次又分析介绍了本文所设计的输入法检索码本的具体流程。1.3 论文组织本文共分七章,论文的结构和各个章节的主要内容如下:第一章,为全文概述,首先介绍了课题的研究背景与意义以及本文的工作安排。第二章,介绍了与设计目标

32、相关的基础工作,包括简单介绍Android平台及其框架和Android开发平台的搭建,介绍纵横输入法的相关基础知识,并分析其优缺点,最后还全面介绍了Android手机平台输入法的生命周期及其重要组成部分等,罗列了Android平台输入法框架中,所需实现的几个重要类及接口。第三章,介绍了纵横输入法码本的特点,并从字词码本结构、索引结构以及码本检索流程等多方面,对纵横输入法的编码进行了具体的描述。第四章,先从逻辑处理、键盘界面、候选字词界面、消息流转、以及候选字词查找等多方面对该输入法进行了设计。然后从键盘的布局、输入法的初始化、消息的捕获与传递、消息的处理以及数据的查询与反馈等多方面,详细地介绍

33、了Android平台上纵横输入法的实现流程。第五章,详细介绍了该汉字输入法的设置、安装、使用与卸载。第六章,总结全文,并展望下一步的研究工作。72Android手机平台上中文输入法设计和实现 第二章 相关工作基础第二章 相关工作基础2.1 Android平台2.1.1 Android平台简介随着通信行业的快速发展,手机已经成为人们生活中的必需品,手机的功能也越来越完善4。目前主要的手机智能操作系统包括:Symbian OS, Windows Phone, Linux, Palm OS 和 Android23。由于操作系统的开放性、硬件选择的多样性和对第三方开发商较少的限制等因素,Android

34、系统已经成为最流行的手机操作系统之一,具有很大的发展前景。Android 本来的意思是机器人,同时它还是Google 在2007年联合无线应用与移动技术领域的带头企业一起构成的手机联盟Open Handset Alliance 宣布的依靠Linux 平台的开源手机操作系统的名称24。该系统包含了操作系统、用户界面、中间件和应用程序,是首个为移动终端打造的真正意义上的开放和完整的移动移动设备综合平台。Google 重新设计了Java 虚拟机和系统,使得Android 的Java 应用更接近于底层系统,效率更高;另外使用虚拟机技术使得Android 的应用在被监控的情况下运行,安全性更高。与Win

35、dows CE ,iPhone OS ,Symbian 等不同,Android 公开源代码,支持第三方软件的加入,消除了任何以往阻碍移动产业创新的专有权障碍。正是由于其开放性,Google Android 手机能够加载很多个性化的东西,比如防火墙、即时通信软件、Office阅读器、输入法等各种在电脑上安装使用的软件。无论是娱乐还是商业应用,智能手机的功能都能在强大的第三方软件的支持下获得无限的扩展25。丰富的Android 应用也使其手机功能更加强大,这加速了电脑与手机的融合,也加速了后PC 时代的到来。Android操作系统应用了开源社区的很多优秀成果,并做了大量的优化和丰富的扩充。Andr

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

37、化的轻量级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 运行所需要的特定的驱动代码,主要作用为提供系统的如安全管理、内存机制、进程管

38、理等底层服务,为系统运行提供基础性的支持30。2. Android 运行时库和其他库层,包含一组核心库和Dalvik 虚拟机,核心库存为Android 提供了大部分Java语言核心库。Android具有丰富的库类支持且大部分为开源代码,如SQLite 、WebKit 、OpenGL等,例如SQLite数据库,体积小只有250KB但支持数据库大小至2TB,提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快29。该层可以通过Java本地调用JNI(Java Native Interface)的接口函数来实现与上层之间的通信31。3. 应用框架层包含了所有开发所用的SDK类库和

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

40、序都是由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. 软件准备a、 进入Java官网( )页面下载jdk1.

41、6+;b、 进入Eclipse官网(http:/www.eclipse.org/downloads/ )下载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 -In

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

43、id SDK自带一个移动模拟设备可以在电脑上运行的虚拟设备。模拟器允许开发者开发的应用程序通过Android 平台服务,调用其他程序、访问网络、播放音频和视频、保存和接收数据、通知用户、渲染图像过渡和场景等功能。通过Eclipse的“窗体”(Windows)菜单-“Android虚拟设备管理器”(Android AVD manager)进入Android虚拟设备管理界面,然后点击“New”按钮弹出创建AVD对话框,在该窗口中添加Name(AVD名称)、Target(Android版本指定)、SDK大小和外观特征,即可完成对Android模拟器的创建工作。通过Eclipse的“窗体”(Windo

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

45、9十个数字对其进行编码。 一个汉字的基本编码方法为:将汉字看成一个方块字,取汉字四个角的笔形代码作为一个汉字的编码,输入法规定单字的输入码最多为四个数字,最少为一个数字。 词组的输入码根据组成词组的单字的输入码来取,词组的输入码最多为六个数字,最少为一个数字。2.2.2 纵横输入法优点现在手机上较有影响力的输入法有笔画类输入法和拼音类输入法。 拼音输入法虽然易学却很难普及,不适合普通话不标准不熟悉汉语拼音者学习,在方言地区推广就更困难。 一般的笔画类输入法又存在重码率高,词库较小、标点符号输入不方便、辅助用户使用功能较弱等缺点,影响用户输入效率。 纵横输入法克服了以上几种输入法的缺点,词库很大

46、、标点符号输入方便。采用GBK大字符集,既支持简体字输入又支持繁体字输入,具有简单易学、简繁通用、词组丰富、功能强大,标点符号输入方便,还可以对重码字词进行调频,具有辅助用户使用等优点32。2.3 输入法框架介绍2.3.1 输入法框架简介自Android平台1.5版本以后,Google开放了Android平台输入法框架(Input Method Framework,IMF),IMF是Android平台的特色设计。它的出现大大推动了不带实体键盘的设备的诞生。同时,Android平台输入法框架也给出了输入法的开发所需要的接口,为Android平台的输入法提供了可扩展性。2.3.2 输入法框架组成一

47、个输入法框架结构中包含三个主要的部分:输入法服务,负责管理各部分的交互,管理输入法应用,其中包括输入法的安装、注册、激活等。主要工作由InputMethdoManagerService(IMMS)完成。它是一个客户端API,存在于各个应用程序的上下文(context)中,用来沟通管理所有进程间交互的全局系统服务。输入法应用 ,具体处理用户输入行为的应用程序,实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个输入法应用运行。为了能够在Android的输入法框架中良好的运行,所有的输入法应用都需要继承特定的服务。

48、客户端,是指具有文字编辑功能的系统控件(如EditText),是平台内部输入法应用人机交互的起点,是用户与输入法应用进行交互的渠道。客户端控件与输入法服务和输入法应用都有交互操作。当客户端控件接受到焦点时,控件启动输入法应用并显示键盘;而失去焦点时,则隐藏键盘。同时能够传递控件状态,接受并显示输入法应用反馈的输入文字。客户端通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用输入法。输入法整体框架图2.2所示。图2.2 输入法的总体框架2.3.3 输入法应用组成Android 平台的输入法框架(Input Method Framework,IMF)中,最主要的是输入法应用(In

49、putMethodService),他继承于Abstract Input MethodService 。InputMethodService主要由以下几个组件构成,其中包括完成输入法的相关UI,和文字的输出:1. 软键盘视图(Soft Input View)这是软键盘的输入区域,主要完成在触摸屏下和用户的交互输入。onCreateInputView()被调用来进行软键盘视图的实例化;onEvaluateInputViewShown() 决定是否显示软键盘视图;当状态改变的时候,调用updateInputViewShown()来重新决策是否显示软键盘视图。2. 候选字视图(Candidates

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

51、和onStartInput(EditorInfo, boolean )方法来进行输入目标的切换。另外,onInitializeInterface()用于InputMethodService在执行的过程中配置的改变; onBindInput()切换一个新的输入通道; onStartInput(EditorInfo, boolean)处理一个新的输入。2.3.4 输入法消息流转机制输入法框架包括客户端、输入法服务和输入法应用三部分组成,如图2.3所示。输入法框架中消息的流转机制为:当客户端获得焦点,启动输入法,创建一个连接类型对象,以实现输入法框架各个层次间信息的传输。该连接类型实现了InputC

52、onnection接口。图2.3 输入法消息流转InputConnection接口是输入法框架(IMF)里面一个重要的接口,它实现了BaseInputConnection和InputConnectionWrapper上层的接口,主要用于应用程序和InputMethod之间通信的通道,可以实现包括读取光标周围的输入,向文本框中输入文本以及给应用程序发送各种按键事件。其中接口InputMethod是AbstractInputMethodService和InputMethodService的上层接口,可以产生各种按键事件和各种字符文本。客户端通过InputConnection将输入码传给输入法应用后

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

54、程序通常不自己使用本接口,而是依靠TextView和EditText等提供的标准进行交互。InputMethodSession接口需要由InputMethodService和 InputMethodSessionImpl 实现。2.3.5 输入法生命周期输入法是用户、应用程序之间的交互的渠道,所有的输入法应用都需要继承特定的Android平台提供的服务。Android平台的输入法框架为输入法应用定义了一个基类InputMethodService, InputMethodService提供了一个输入法的标准实现流程,定义了输入法生命周期内的重要函数,以方便开发人员对Android输入法进行扩展。

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

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

57、软键盘类,直接继承与Keyboard类。负责解析并保存键盘布局,并提供选词算法,供程序运行当中使用。其中键盘布局是以XML文件存放在资源当中的。Android的输入法服务,通过一些接口函数与系统进行交互,在这些接口中,主要接口是InputMethodService 。它提供了一个输入法的标准实现,开发输入法时可以参照和自定义该实现,表2.1显示了InputMethodService接口提供的函数。表2.1 InputMethodService接口提供的函数主要接口函数说明onInitializeInterface进行UI的初始化,创建和修改时调用此接口onBinndInput在另外的客户端和该

58、输入法连接时调用onStartInput初始化整个输入法 ,非常重要的一个回调,它在编辑框中用户已经开始输入的时候调用onCreateInputView创建输入视图,返回一个层次性的输入视图,而且只是在这个视图第一次显示的时候被调用 onCreateCandidatesView创建候选框视图,当需要候选框显示时调用onCreateExtractTextView全屏模式下的视图onStartInputView在输入视图被显示并且在一个新的输入框中输入已经开始的时候调用getCurrentInputConnection此函数呼叫应用程序,接收原始的按键事件onFinishInput结束输入法2.4

59、 本章小结本章首先简单介绍了Android 平台的基础知识,介绍了Android 操作系统的几个重要组件,和Android 操作系统平台的基本框架结构。接着,本章还介绍了纵横输入法的一些基础知识,并结合当下Android 手机上已有的输入法,介绍了纵横输入法的优点。最后,本章系统地介绍了Android平台的输入法框架。介绍了输入法框架的三个组成部分(输入法服务、输入法应用、客户端),然后又详细介绍了输入法应用的几个重要成部分,输入法内部消息的流转机制,和输入法的生命周期,并罗列了Android系统开发过程中主要的三个类,以及输入法服务(InputMethodService)提供的部分主要的接口

60、函数名称以及每个函数所对应的简要说明。Android手机平台上中文输入法设计和实现 第三章 码本结构设计第三章 码本结构设计3.1 码本特点合理的编码设计对于输入法来说有着非常重要的作用32 ,直接关系到输入法的查询性能、所需存储空间等多个方面。一种输入法,如果占用过多的存储空间或者具有较差的输入性能,均不利于用户的使用。然而这两个方面又是相互矛盾的,所以需要在输入法的性能与资源占用之间进行平衡。在本输入法中,为了实现输入码对照表的简繁通用,系统采取的编码为Unicode编码,同时为了节省存储空间,需要将码本进行压缩存储,通过为码本添加索引文件的方式压缩码本,下面会详细介绍。因此此编码方案所需

61、要的文件包括字索引文件、字码本文件、词索引文件、词码本文件。3.2 字码本结构字码本的存储分为字索引文件和字码本文件。I) 字索引字索引是输入码到汉字的纽带,能从索引项中得到符合某一输入码的汉字在字码本中的位置。码长短,会导致重码太多,而码位太多会加重用户输入的负担,本文采取的编码方案为四位编码,对四位编码的每一位编码分别用A、B、C、D表示,如图3.1所示。图3.1 编码位置表纵横汉字编码法是一种基于数字的编码,则每一位可取值”09”,在四位编码中,第一位不能为空,则 A、B、C、D的取值范围为A:“09”,10种取值;B:空格+“09”,11种取值;C:空格+“09”,11种取值;D:空格

62、+“09”,11种取值。共有索引项10*11*11*11=13310项,使用2个字节便可存储全部索引项。采用哈希索引按照字典序对每一个索引码建立一个索引项。具体每一项的索引计算公式(3.1)为Index=A*11*11*11+(B+1)*11*11+(C+1)*11+(D+1) (3.1)在本文的四位索引码的取值范围中有约束条件:当某一索引码为空的时候,后面的码位必须为空,另外输入码的第一位不能为空,这时需要减去由于某位编码为空而导致的多余索引项,得到的索引项的计算公式为(3.2)Index_con=Index-(A+f(B)*110-(A*11+(B+1)+f(C)*10 (3.2)其中这样,便可通过索引得到输入码与索引项的对应关系。II)字码本为了实现汉字的简繁通用,本文使用Unicode编码存储汉字,由于在最大码长为4的数字编码方案中,输入码等于索引码,所以在字码本中,仅仅存储字表项,字表项是按照与字索引一致的方式排序的,每个字表项的结构如下:字表项=+其中 =+出现次数(是为了显示时排序使用的).,“出现次数”占四个字节。=0xFFFF(2个字节)通过来判定一个字表项的结束。3.3 词码本结构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交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!