《Android程序设计》课程答辩项目文档题目聊天机器人学院计算机学院专业学生姓名学号2摘要聊天机器人是一种特殊的自动问答系统,它的特点是模仿人的语言习惯,几乎都是通过模式匹配的方式来寻找问题最合适的答案。聊天机器人对于知道答案的问题,往往回答的比较准确,而对于不知道的问题,则通过猜测,转移话题,或回答不知道的方式给出答案。聊天机器人就像一面镜子,跟好人,学好人.有时也会反射你的问题。所以它们是社会的镜子,人性的镜子.。因此可以用于心理治疗和社会调查领域。随着世界科技的飞速发展,智能设备的不断完善,功能也越来越多。聊天机器人不仅能够在你寂寞的时候陪你聊聊天,开开玩笑,讲讲故事,还能自动为你查询你想知道的问题。如:想知道的新闻,百度百科,食谱,航班以及天气预报等等。本课题研究设计一款运行在Android平台的聊天机器人软件。该课题主要使用Java语言开发。运行于Android操作系统,实现了聊天的基本功能。3目录摘要....................................................................................................................................................................2目录............................................................................................................................................................3第一章引言....................................................................................................................................................41.1项目背景.................................................................31.2项目目的.................................................................31.3项目内容.................................................................5第二章ANDROID相关技术介绍......................................................................................................................52.1ANDROID介绍.............................................................52.2ECLIPSE开发平台介绍.....................................................6第三章聊天机器人设计..................................................................................................................................73.1特点分析.................................................................73.2程序运行流程.............................................................8第四章聊天机器人的实现..............................................................................................................................94.1安装开发环境.............................................................94.2项目文档浏览............................................................104.3消息的接受与发送........................................................114.4消息实体的编写..........................................................134.5LISTVIEW的编写.........................................................164.6MAINACTIVITY的编写.....................................................174.7CHATMESSAGEADPATER的编写...............................................194.8效果展示...............................................................20结论........................................................................................................................................................2014第一章引言1.1项目背景2007年11月5日,距离苹果发布第一代iPhone手机仅四个月,谷歌公司正式公布Android操作系统,并且宣布与34家手机厂商、运营商成立“开放手机联盟”(OHA),自此基于Linux内核的Android系统正式登上历史舞台。Android平台自2010年以来呈现出突飞猛进的发展势头,在全球智能手机市场中所占份额从不到10%一路猛增至50%以上。2011年,全球智能手机销量首次超过PC电脑的销量。Android已经成为全球智能手机市场的领跑者,截至2012年第一季度的市场份额已超过50%。在这样的情况下,基于Android平台的应用也迅速增长。2012年2月数据显示,AndroidMarket上的应用程序数量突破45万个,AndroidMarket的累计下载量已经突破130亿次,在谷歌电子市场登记的Android开发者已达10W名,Android设备每天激活量达到85万台。很显然,在这样的市场环境下,Android开发成为一大产业,而大多数手机随着手机内存的加大,cup的提升,让手机可以运行越来越的软件,手机的功能也越来越多。聊天机器人拥有着主要2个功能,一是帮助用户查找问题答案,二是和用户进行聊天。为了方便用户查找自己所需要的问题,聊天机器人的开发是有意义的,成为主流趋势只是时间问题,除了帮助用户快速查询问题的答案以外。聊天机器人另外一个突出特点就是在你没有人可以说话的时候,能有一位能一直回复你的忠实听众。中国移动客户发送简易聊天消息到10086后,10086也会自动回复客户与之聊天所匹配的消息,这个人性化的设置在当时推出后,就立刻引起了人们特别的喜爱,中国移动的成功,也标志了聊天机器人被人们需求,被人们所喜爱。为了使更多使用Android手机的人能够使用到聊天机器人。聊天机器人的研发势在必行。本论文即基于此背景而开展的。1.2项目目的随着智能手机的普及,越来越多的普通民众习惯于在手机上完成他们想要做的事情,获取他们想了解的信息。而信息的查找通常都通过第三方软件完成,如天气预报的查询则需要点开天气预报这个APP或者打开浏览器到网页上查询。这对用户来说,如果要查询多种信息就显得很不方便,而聊天机器人的出现就立刻解决了这一难题。通过此课题的研究,熟悉了第三方API图灵机器人的使用、以及ListView多种Item布局时的处理,实现聊天对话的界面等功能。51.3项目内容本项目主要分为4个步骤1、编写一个工具类实现消息发送与接收2、完成消息实体的编写3、完成ListView布局4、完成activity功能的实现第二章Android相关技术介绍2.1Android介绍Android是“机器人”的意思,是Google公司于2007年11月5日发布的一个机遇Linux平台的开源手机操作系统。该系统由底向上一共分为了4层,如图2-1。每一层对把底层实现封装,并提供调用接口给上一层。图2-1Android系统架构6(1)Linux内核(LinuxKernel)。Android运行在LinuxKernel2.6之上,但是把Linux内核GNU协议约束的部分做了取代。这样,运行在Android上的程序可以用于商业目的。Linux内核是硬件和软件层之间的抽象层。(2)中间件。中间件包括两部分:核心库和运行时环境(Libraries&AndroidRuntime)。核心库包括,SurfaceManager,显示系统管理库,负责把2D或3D内容显示到屏幕;MediaFramework,媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQLite,数据库,一个功能十分强大的轻量级嵌入式关系数据库;WebKit浏览器引擎等。运行时环境主要包括一个DalvikVirtualMachin,Dalvik虚拟机,区别于Java虚拟机的是,每一个Android应用程序都在自己的进程中运行,都有一个属于自己的Dalvik虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。(3)应用程序框架。丰富而又可扩展性的视图(View),可以用来构建应用程序,它包括列表(List),网格(Grids),文本框(Textboxs),按钮(Button),可嵌入的Web浏览器等。内容提供者(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享他们各自的数据。资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(LayoutFiles)。通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自己定义的提示信息。活动管理器(ActivityManager)用来管理应用程序的生命周期,并提供常用的导航回退功能。(4)应用程序。Android系统会内置一些应用程序包,包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理器等等。Android应用程序由强大的Java语言来编写,也支持其他一些语言如C、Perl等。其中Java应用最为广泛,其他语言已经就看不到了[4]。2.2ECLIPSE开发平台介绍Eclipse是一个开放源代码的、基于Java的、跨平台的集成开发环境(IDE)。最开始是一个开放源代码的软件开发项目,最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatfo