1、 . 硕 士 学 位 论 文Android平台中文输入法的设计和实现The Design and Implementation of Chinese Input Method on Android 专业名称计算机技术 研究方向中文信息处理 大学学位论文独创性声明与使用授权声明学位论文独创性声明本人重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的容外,本论文不含其他个人或集体已经发表或撰写过的研究成果,也不含为获得大学或其它教育机构的学位证书而使用过的材料。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律责任。研
2、究生签名:日期:学位论文使用授权声明大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的容和纸质论文的容相一致。除在期的论文外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分容。论文的公布(包括刊登)授权大学学位办办理。研究生签名:日期:导师签名:日期:63 / 74Android平台中文输入法设计和实现中文摘要伴随着手持通信设备的日益普与和短信、微博等应用的广泛使用,人们越来越多地依赖于这些设备进行文字信息输入和处理。如何快速准确地利用手持式设
3、备输入文字信息,特别是中文信息,对中国人而言有利于重要。首先,本文介绍了Andriod的主要组件和系统框架等容,并分析了当今移动平台上的主流汉字输入法的优缺点。其次,本文以纵横输入法为例介绍了在Android平台下的码本的设计和检索技术,包括字词码本结构的设计、索引方式的设计、联想功能的实现、码本的存储以与输入法具体的检索流程。最后,本文全面分析了Android系统平台的输入法框架,对该框架的组成、流程、生命周期以与一些所需实现的类和函数等进行了详细的阐述。在此基础上,在Andriod平台上设计并实现了纵横输入法,并介绍了其实现技术。对实例输入系统的测试表明,该系统已达到了实用水平,并已经有了
4、一定规模的用户群。关键词:输入法、Android、码本、输入架构作 者: 指导老师: The Design and Implementation of Chinese Input Method on Android AbstractWith the widespread use of mobile devices and increasing popularity of short message, microblogging and other mobile applications, the requirement of inputting and processing text info
5、rmation, especially the Chinese information for us, on mobile devices is recreasing rapidly. .Firstly, this desertation describes the main component and system framework of Andriod, and then analyzes the advantages and disadvantages of the popular Chinese input methodson all kinds of mobile platform
6、s.Secondly, it usesCKC input method as a sample to describe the design of the relation table between codes and their 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
7、the relation table, and specific retrieval processes of the input method.Finally, it analyzes the 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
8、basis, it designes and realizes the CKC input method on the Andriod platform, and introducesits implemention technology.Tests on the CKC input system on the Android platform show that our system has reached a very practical leveland italready has been used on some extent.Key Words: Chinese input met
9、hod; Android; code book; Input architecture 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平台9
10、2.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.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第四章
11、 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 初始化输入法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
12、标点符号输入465.2.6 键盘切换465.3 输入法卸载475.4 本章小结48第六章总结与展望49参考文献50攻读学位期间公开发表的论文52第一章 绪论1.1 课题背景与意义近年来,我国手机用户数量以惊人的速度增长,工信部2011年3月1日发布2011年1月份通信业运行状况,数据显示,2011年1月,全国用户总数达到11.64亿户,其中移动用户净增1072.0万户,达到8.7亿户1。手机终端功能的多样化和网络技术的快速发展,也使手机的使用越来越普遍。而飞速增长的移动市场,同时也促进了移动产业价值链各个环节的共同发展,这其中就包括了网络运营商、网络设备制造商、终端厂商乃至容提供商等。伴随着手
13、持通信设备的日益普与,人们越来越多地依赖于通过这些设备进行信息处理和交流,因此如何快速准确地向手持式设备输入文字信息成为当今信息领域研究的热点之一。目前,手持通信设备使用的输入法主要为:数字键盘输入法、手写输入法以与全键盘输入法。由于手持设备本身硬件的限制,数字键盘输入法成为手机中最常用的输入法,然而现在,我国数字键盘汉字输入的技术和市场主要被外国垄断,90%以上的手机嵌入的汉字输入法技术使用的是国外技术和专利,我们使用的每台手机都必须给外国公司支付超过0.3美元的汉字输入技术专利费,仅此一项,每年就要支付几亿元人民币。目前,美国的T9输入法和加拿大字源(eZiText)输入法约占我国手机数字
14、键盘输入法市场的80%,而国产输入法市场占有率不足20%2。然而即便这样,国外公司的中文输入技术,仍缺乏从汉字的基本规律出发,来理解汉字的系统性和科学性,不能从根本上彻底解决汉字与信息输入技术的有机结合,在这种情况下,我们开发自己的国产手机输入法,不仅可以为手机终端用户提供最先进的汉字输入技术,还可以为手机生产商节约技术成本,同时为国家节省大笔外汇。在这种背景下,信息产业部在2007年便公布了相应的技术标准用于规数字键盘汉字输入技术,通过技术标准的制定和实施,促进数字键盘汉字输入技术进步3。国也陆续推出了自己的输入法,例如由国笔科技推出的国笔智能输入法,腾凌智能数字键盘中文输入法等。然而,国外
15、手机数码输入法已经占据了非常大的市场份额,以与国产汉字输入技术的相对还不是很成熟,国产手机数码输入法的发展仍有很艰巨的道路要走。本文所讨论的输入法为基于笔形的数码输入技术,此方法具有简、繁通用的特点。智能输入技术的引入极提高了汉字输入系统的性能,最早该技术被拼音输入法用来解决由于同音字引起的重码问题,接着又被用来简化用户输入,后来又被用来适应不同用户的输入习惯,本文讨论如何将智能输入技术和中文输入技术结合起来,以实现输入法动态自适应的输入。以往,手机操作系统不开放编程接口,不支持第三方软件的开发。随着手机市场的竞争日益强烈以与手机终端功能的不断增强,越来越多的手机操作系统开放接口以便支持第三方
16、软件的开发,像Windows Mobile操作系统、Symbian操作系统、Smartphone 操作系统以与Android操作系统等。在中国智能手机操作系统市场上,Android发展迅速,其市场份额由2008年的0.3%飙升至2010年的14.3%。可见,Android系统的发展势头非常好,在国手机操作系统市场份额必将领先其他,因此本文将Android系统作为纵横输入法的目标实现平台。对于本课题的实现,有如下意义: 将智能输入技术进一步应用与手机输入系统中,便于适应用户的输入习惯,提高了用户输入汉字的速度。 利于促进国数码汉字输入技术的进步,提高国产输入法在市场中的竞争力。 对于各种输入法向
17、手持设备上的移植具有借鉴意义。1.3 研究现状如今,智能移动设备正处于高速发展的阶段。产品价格的不断合理化,也大力推动了智能手机的普与。它的发展同时也带动了其相关软件产品的发展,汉字输入法软件就是其中之一,因为它是向汉字用户推广智能手机产品的必要前提4。1.3.1移动手机平台发展现状早期手机由于功能单一且用途简单,故其硬件设备也简单,针对不同硬件设备开发的相应的手机操作系统成本较(手机中文输入法的设计与实现)低5。但随着手机功能逐渐的综合化和复杂化,软硬件成本逐渐增加,人们开始开发一些符合某些硬件标准的手机的操作系统,既可以方便用户使用,也大大降低了手机生产的软件成本。智能手机也自此应运而生。
18、2005年以后,智能手机更是飞速发展,改变了人们的生活方式。智能手机具有五大特点:1、具有开放的操作系统,可以自由安装第三方应用,使系统功能得到无限扩展;2、具有无线接入互联网的能力,即在GSM网络中需要支持GPRS,在CDMA网络中支持CDMA 1X或3G网络;3、具有PDA功能,包括PIM(个人信息管理)、多媒体应用、浏览网页、日程记事等;4、功能强大,扩展性强,第三方支持多;5、人性化,可以根据个人需要扩展与其功能24。目前主要的手机智能操作系统包括:Symbian、Android、Windows Phone、iOS、Palm OS、Linux等24。1. SymbianSymbian是
19、由几家大型移动通讯设备商(诺基亚、摩托罗拉、三菱、爱立信与Psion等)共同出资成立的一家合资公司,专门用于研发手机操作系统(Symbian OS)7,其目标是开发一种开放性的操作系统,使其能在手机与其他一些移动设备上运行。2008年Symbian被诺基亚全额收购。Symbian是一套相当成熟的操作系统,具有强大的开放性和较低的研发成本,被授权的开发商能更自由的研发第三方软件,利润也是相当丰厚;运行环境稳定安全,效率也相当高,界面灵活简单,用户体验相当友好,因此也稳坐智能手机市场冠军相当长一段时间。不过,Symbian也有一些致命的缺点,直接导致了后来的失败结局。例如:一、Symbian机型的
20、硬件配置普遍较低,各类机型所采用的屏幕分辨率和处理器主频都比较低,虽然系统可以获得较高的处理效能,但是在多媒体等方面表现仍然不尽如人意。二、在多媒体方面,Symbian OS对主流的媒体格式的支持性较差。三、虽然Symbian OS为了适应不同的人群和各类的需要而采用了多种平台,但这也成为了Symbian发展一个障碍。每个平台之间的第三方软件不能相互兼容,软件开发商专注于单一平台,而减少了各个平台通用的软件个数,给用户带了很多不便。四、版本之间兼容性较差,每个新的版本的Symbian发布并且产品上市之后,很多软件要开发商通过开发新的版本跟进,才能继续使用。五、对细节的注意不是很够。由于Symb
21、ian只提供厂商一个核与UI,很多细节功能是需要手机厂商进行添加的。而很多手机厂商重点放在了多功能与综合的性能等多方面,忽略了基本功能,以至于一些机型的闹钟功能都必须由第三方软件来实现,给不熟悉系统的用户带来了很多困难。2. AndroidAndroid是Google于2007年11月5日提出的基于Linux平台的开源手机操作系统的名称,号称是首个为移动终端打造的真正开放的和完整的移动软件。Android系统主要厂商包括美国摩托罗拉、国的三星、英国的索尼爱立信还有很多的中国厂商,例如:HTC、联想、华为、中兴等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板
22、电脑市场急速扩。据市场调研公司尼尔森发布统计数据称,2010年第二季度谷歌Android手机在美国的销量首次超过了苹果iPhone,这也让诸多业人士直呼未来是Android的8。3. iOSiOS是苹果公司为iPhone、iPod touch以与iPad开发的操作系统。iOS有用户界面相当友好,操作也很方便,系统性能稳定,丰富的第三方软件资源、服务也很完善等很多优点。但是它的缺点也是相当的多,如:一、系统核源代码完全封闭的,并且只有获得苹果公司的授权的第三方软件开发者才能开发iOS软件。并且较多的开发平台限制也增加了第三方开发者的研发成本。二、其第三方软件中,大部分是付费软件。三、搭载iOS系
23、统的苹果产品价格较为昂贵,让大部分消费者望而却步。所以致使其被之后的Android超越了。4. Linux嵌入式Linux操作系统是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统9。嵌入式Linux系统是智能手机操作系统的后来者,由于该系统免费开放源代码,国外很多公司致力于Linux操作系统和应用软件的开发10。其优势表现为以下几点11:a、 应用于智能手机上Linux操作系统和应用与电脑上的Linux操作系统是同一个系统,而且全都是是免费操作系统。在操作系统上免费就等于节省了产品的生成
24、成本。b、 Linux操作系统系统资源占有率较低,而且性能比较稳定12,如果Linux平台的系统资源占用程度,比体积庞大的Windows Mobile小的多。c、 Linux操作系统与JAVA相互融合,是任何一个操作系统所不能比拟的,Linux+JAVA的应用方式,能够给用户极大的拓展空间。不过Linux也有很多天生的缺点,例如:a、 入门难度高、熟悉其开发环境的工程师少、集成开发环境不够完善。b、 由于微软PC操作系统源代码不公开,基于Linux的产品很难与PC进行连接。c、 从事Linux操作系统开发的公司虽然多,但缺乏开发实力较强的公司,并且这些公司相互独立开发难以实现重大突破。因此Li
25、nux也很难抢占移动市场份额。5. Windows PhoneWindows Mobile系列彻底退出手机操作系统市场后,微软于2010年2月,又正式发布了Windows Phone手机操作系统以对抗谷歌的Android和苹果的iPhone,该系统的程序将与Windows Mobile互不兼容。Windows Phone系统主要生产厂商有:三星,HTC,LG等。诺基亚也将把Windows Phone作为其智能手机的主要操作系统,并与微软达成战略合作关系,这必将给移动操作系统领域带来新的活力。6. Palm OSPalm是Palm公司开发的一种32位嵌入式操作系统,主要应用于掌上电脑,其对硬件要
26、求不高,使得采用Palm系统的设备体积较小巧,电池续航长24。Palm系统不但占用系统资源少,硬件要求不高,电池寿命长,而且系统简单易用,采用了触控的操作界面,一个触控笔可以完成几乎所有操作,十分方便携带。不过它也有很多不完善的地方,如缺少一些常用基本功能,比如通讯功能和多媒体功能,中文产品也相对较少。1.3.2手机输入法发展现状文字输入方式根据设备终端所采用的硬件,可分为数字键盘、全键盘与手写输入三大类2413。早期的手机汉字输入法,用手机数字键29分别代表26个英文字母,如数字键2代表“ABC”三个字母1415;在输入时,输入2代表A,22代表B,222代表C。所以在输入拼音的时候需要一一
27、选择需要的字母来组成拼音,然后根据拼音来选择需要的文字。这种输入法效率十分低的15。目前数字键盘输入法虽然种类繁多,但主要市场份额基本上被T9、iTAP和字能(eZi)这三种输入法所占领101617,其他输入法的市场份额极少。这三款数字键盘输入软件,均提供拼音、笔画、注音(地区)三种输入方式10。T9输入法全称T9智能输入法,该输入法是由语音技术、文字输入和图像解决方案提供商Nuance通讯公司开发的418,目前占有率最高。T9输入法是针对移动小型终端的文字输入解决方案,以输入字符高效快捷而著称19。T9的中文输入包括简体中文和繁体中文,输入方式包括笔画、拼音以与注音。目前已支持汉语、英语、法
28、语德语、意大利语等44种语言,中文字库容量达9000多字17 19。字能输入法20是由总部设在加拿大的字源咨询技术和爱立信合作推出的。此输入法具有20902个汉字的高容量字库,是T9输入法字库的两倍多。该输入法主要被早起的爱立信、阿尔卡特以与一些国产手机如联想等采用。该输入法支持拼音和笔画两种中文简体输入方式,两种输入方式都具有联想功能15。iTAP输入法全称iTAP智能按键输入法,是摩托罗拉经过潜心研究,在T9的基础上发展起来的。摩托罗拉在美国加州设有专门的研究所,不断地对iTAP输入法软件字库进行更新,输入法软件支持20多种语言21,支持语言的种类比其他输入法软件都多。该输入法还能够根据最
29、常用的声、韵母组合和最频繁使用的文字统计、声调和词语联想等先进技术,实现简便、快捷的输入17。国比较知名的手机输入法开发厂商主要有电讯、A4、搜狗和腾讯418,前两家都是专门从事手机输入法开发的厂商,目前它们分别被百度和腾讯收购。因为国对中文的理解更深,也更加了解中文的输入习惯,实际上国产输入法在性能上不逊色于或优于海外输入法4。拼音输入法比目前国外同类技术快29%至41%,笔画输入法比国外同类技术快40%至51%,音形组合输入法比国外输入法快近70%422。由于手机设备大部分是海外生产的,直接捆绑了海外的输入法,导致了国输入法难以提高占有率,打开市场。不过随着手机系统的不断开放,例如Andr
30、oid中完全开源的手机系统出现后,用户可以自行安装输入法,国产输入法将会得到迅猛的发展。1.3 本文工作1)提出了一个适合Android平台的输入法码本设计方案合理的码本设计对于输入法来说有着非常重要的作用 ,直接关系到输入法的查询性能、所需存储空间等多个方面。一种输入法,如果占用过多的存储空间或者具有较差的输入性能,均不利于用户的使用。然而这两个方面又是相互矛盾的,所以需要在输入法的性能与资源占用之间进行平衡。为了实现简繁通用,本文输入法采用了Unicode编码,并对码本进行了压缩。本文编码方案所需要的文件包括字索引文件、字码本文件、词索引文件、词码本文件。本文详细介绍了该编码方案,并从码本
31、的结构、索引的结构以与输入法根据输入码检索码本的具体流程,对该编码方案进行了详尽的阐述。2)分析了Android输入法框架,设计了一个基于Android平台的输入系统Android手机系统平台,自Google公司2007年发布以来,以其开放性、硬件选择的多样性和对第三方开发商较少的限制等各种因素,已经成为最流行的手机操作系统之一。本文详细介绍了Android平台的各个功能组件以与平台框架结构等。而从Android平台1.5版本以后,Google更是开放了Android平台输入法框架(Input Method Framework,IMF),为Android平台的输入法带来了可扩展性。为了能开发出
32、Android平台下的输入法,本文对Android平台的输入法框架进行了详细的介绍。本文首先介绍了Android输入法的生命周期以与它的几个重用组成部分,包括:输入法服务,输入法应用和客户端。然后又重点介绍了输入法应用的几个重要组成。最后还罗列了根据Android平台输入法框架中需要实现的几个重要的类以与几个重要的函数接口和这些接口的简要说明。3)介绍了Android平台输入系统的实现技术根据对Android平台输入法框架的分析,本文在Android平台上实现了一款新的汉字输入法。本文首先从输入法的逻辑处理、键盘视图设计、界面设计以与消息的流转以与处理等多方面,详细阐述了该输入法的设计与实现的
33、过程,其次又分析介绍了本文所设计的输入法检索码本的具体流程。1.3 论文组织本文共分七章,论文的结构和各个章节的主要容如下:第一章,为全文概述,首先介绍了课题的研究背景与意义以与本文的工作安排。第二章,介绍了与设计目标相关的基础工作,包括简单介绍Android平台与其框架和Android开发平台的搭建,介绍纵横输入法的相关基础知识,并分析其优缺点,最后还全面介绍了Android手机平台输入法的生命周期与其重要组成部分等,罗列了Android平台输入法框架中,所需实现的几个重要类与接口。第三章,介绍了纵横输入法码本的特点,并从字词码本结构、索引结构以与码本检索流程等多方面,对纵横输入法的编码进行
34、了具体的描述。第四章,先从逻辑处理、键盘界面、候选字词界面、消息流转、以与候选字词查找等多方面对该输入法进行了设计。然后从键盘的布局、输入法的初始化、消息的捕获与传递、消息的处理以与数据的查询与反馈等多方面,详细地介绍了Android平台上纵横输入法的实现流程。第五章,详细介绍了该汉字输入法的设置、安装、使用与卸载。第六章,总结全文,并展望下一步的研究工作。第二章 相关工作基础2.1 Android平台2.1.1 Android平台简介随着通信行业的快速发展,手机已经成为人们生活中的必需品,手机的功能也越来越完善4。目前主要的手机智能操作系统包括:Symbian OS, Windows Pho
35、ne, Linux, Palm OS 和 Android23。由于操作系统的开放性、硬件选择的多样性和对第三方开发商较少的限制等因素,Android系统已经成为最流行的手机操作系统之一,具有很大的发展前景。Android 本来的意思是机器人,同时它还是Google 在2007年联合无线应用与移动技术领域的带头企业一起构成的手机联盟Open Handset Alliance 宣布的依靠Linux 平台的开源手机操作系统的名称24。该系统包含了操作系统、用户界面、中间件和应用程序,是首个为移动终端打造的真正意义上的开放和完整的移动移动设备综合平台。Google 重新设计了Java 虚拟机和系统,使
36、得Android 的Java 应用更接近于底层系统,效率更高;另外使用虚拟机技术使得Android 的应用在被监控的情况下运行,安全性更高。与Windows CE ,iPhone OS ,Symbian 等不同,Android 公开源代码,支持第三方软件的加入,消除了任何以往阻碍移动产业创新的专有权障碍。正是由于其开放性,Google Android 手机能够加载很多个性化的东西,比如防火墙、即时通信软件、Office阅读器、输入法等各种在电脑上安装使用的软件。无论是娱乐还是商业应用,智能手机的功能都能在强大的第三方软件的支持下获得无限的扩展25。丰富的Android 应用也使其手机功能更加强
37、大,这加速了电脑与手机的融合,也加速了后PC 时代的到来。Android操作系统应用了开源社区的很多优秀成果,并做了大量的优化和丰富的扩充。Android操作系统主要包含了以下功能组件26:1. 经Google 针对移动设备剪裁和优化的Linux 核。2. 由Google 重新实现的Java 虚拟机 Dalvik VM。3. 大量的函数库和服务,如浏览器引擎WebKit ,数据库 SQLite。4. 常用的应用程序,如拨号程序和通讯录等。5. 一套完整的SDK(Software Development Kit ),提供了使用Java语言进行Android应用开发的API 类库和工具集(包括An
38、droid 模拟器和Eclipse IDE 下的开发工具插件以与一组用于在模拟器和终端设备上打包、安装、调试和测试的应用程序的工具)。6. 经过优化的轻量级2D 和3D 图形引擎,用于支持各种游戏的开发。7. 提供常见的音频、视频和图片格式支持的底层媒体库。8. 用于支持GSM 、蓝牙、3G 、WiFi 、摄像头、GPS 和各种输入设备的驱动程序。2.1.2 Android 平台框架Android操作系统自顶向下分为4层,分别为应用层、应用框架层、函数库和虚拟机层以与Linux核层 27。1. Linux核层位于硬件和其它软件层之间,采用YAFFS2 文件系统28,是基于Linux Versi
39、on 2.6核来开发的,包含了虚拟CPU 和Android 运行所需要的特定的驱动代码,主要作用为提供系统的如安全管理、存机制、进程管理等底层服务,为系统运行提供基础性的支持30。2. Android 运行时库和其他库层,包含一组核心库和Dalvik 虚拟机,核心库存为Android提供了大部分Java语言核心库。Android具有丰富的库类支持且大部分为开源代码,如SQLite 、WebKit 、OpenGL等,例如SQLite数据库,体积小只有250KB但支持数据库大小至2TB,提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快29。该层可以通过Java本地调用JNI
40、(Java Native Interface)的接口函数来实现与上层之间的通信31。3. 应用框架层包含了所有开发所用的SDK类库和某些未公开接口的类库。该层为Android 开发人员提供了访问框架应用程序接口的全部权限,使开发人员能方便并安全地访问系统功能和其他应用程序所发布的功能供其他程序使用,并发布自己应用程序的功能。通过采用结构化设计,大大简化了组件之间的重用,提高了开发者的开发效率。应用框架层为开发者提供了大量的组件和服务,如:丰富和可扩展的视图、容提供器、资源管理器、通知管理器、活动管理器和位置管理器等。4. 应用层包含了Android本身的一些核心应用程序,例如客户端,短信程序,
41、日历程序,地图,浏览器,通讯录等等,还有一些基于Google Android 的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上的一个插件,能够提供一个强大的集成开发环境来开发A
42、ndroid应用。搭建Android开发平台的流程如下:1. 软件准备a、 进入Java官网(java.sun./javase/downloads/index.jsp )页面下载jdk1.6+;b、 进入Eclipse官网(.eclipse.org/downloads/ )下载Eclipse 3.3(Europa); c、 进入Google Android 官网(developer.android./sdk/1.6_r1/index.html )下载Android SDK;2. 安装集成平台和配置Java环境变量a、 安装JDK 并配置好Java 环境变量b、 安装Eclipse将下载的Ecl
43、ipse压缩包解压到相应的安装目录即可。3. 配置Android 平台开发环境a、 安装Android Development Tools (ADT )插件启动Eclipse ,如果是Eclipse3.5 或Eclipse3.6 选择Help -Install New Software. ,点击Add ,如果Eclipse3.4与以下版本菜单是Help -Software Updates. ,点击Add Site 准备安装插件。在Location 中输入Android ADT插件在线下载地址: s:/dl-ssl.google./android/eclipse/ ,点击OK按钮就可以下载安装了
44、。b、 应用Android SDK到Eclipse在Eclipse 工具栏中,选择:Window - Preferences.左边菜单中选中android,在右边浏览框中选择sdk的解压目录作为 sdk location,点击Apply ,然后点击OK按钮即可。为了便于模拟和测试应用程序,Android SDK自带一个移动模拟设备可以在电脑上运行的虚拟设备。模拟器允许开发者开发的应用程序通过Android 平台服务,调用其他程序、访问网络、播放音频和视频、保存和接收数据、通知用户、渲染图像过渡和场景等功能。通过Eclipse的“窗体”(Windows)菜单-“Android虚拟设备管理器”(A
45、ndroidAVD manager)进入Android虚拟设备管理界面,然后点击“New”按钮弹出创建AVD对话框,在该窗口中添加Name(AVD名称)、Target(Android版本指定)、SDK大小和外观特征,即可完成对Android模拟器的创建工作。通过Eclipse的“窗体”(Windows)菜单-“Android虚拟设备管理器”(Android AVD manager)进入Android虚拟设备管理界面,选择要启动的Emulator,然后点击“start”按钮,进入Emulator启动界面,点击“launch”按钮,完成所选模拟器的启动后,即可进行相关模拟测试程序。2.2 纵横输入
46、法2.2.1 纵横输入法简介纵横输入法是由浙同乡会主席周忠继先生所发明,由大学纵横汉字信息技术研究所研制。经过多年不断地完善,在、澳门等地大受欢迎。 在纵横码中根据汉字的字形,采用0到9十个数字对汉字进行编码。纵横码中规定了十种基本笔形,分别用0到9十个数字对其进行编码。 一个汉字的基本编码方法为:将汉字看成一个方块字,取汉字四个角的笔形代码作为一个汉字的编码,输入法规定单字的输入码最多为四个数字,最少为一个数字。 词组的输入码根据组成词组的单字的输入码来取,词组的输入码最多为六个数字,最少为一个数字。2.2.2 纵横输入法优点现在手机上较有影响力的输入法有笔画类输入法和拼音类输入法。 拼音输
47、入法虽然易学却很难普与,不适合普通话不标准不熟悉汉语拼音者学习,在方言地区推广就更困难。 一般的笔画类输入法又存在重码率高,词库较小、标点符号输入不方便、辅助用户使用功能较弱等缺点,影响用户输入效率。 纵横输入法克服了以上几种输入法的缺点,词库很大、标点符号输入方便。采用GBK大字符集,既支持简体字输入又支持繁体字输入,具有简单易学、简繁通用、词组丰富、功能强大,标点符号输入方便,还可以对重码字词进行调频,具有辅助用户使用等优点32。2.3 输入法框架介绍2.3.1 输入法框架简介自Android平台1.5版本以后,Google开放了Android平台输入法框架(Input Method Framework,IMF),IMF是Android平台的特色设计。它的出现大大推动了不带实体键盘的设备的诞生。同时,Android平台输入法框架也给出了输入法的开发所需要的接口,为Android平台的输入法提供了可扩展性。2.3.2 输入法框架组成一个输入法框架结构中包含三个主要的部分:输入法服务,负责管理各部分的交互,管理输入法应用,其中包括输入法的安装、注册、激活等。主要工作由InputMethdoManagerService(IMMS)完