“等待学习”聊天工具设计与实现

 2022-01-17 11:01

论文总字数:15799字

目 录

1 绪论 1

1.1 选题背景 1

1.2 开发“等待聊天学习工具”的意义 1

1.3 国内外研究现状 1

2技术介绍 2

2.1 Java技术介绍 2

2.2 Android技术介绍 2

2.2.1 Android的系统架构 2

2.2.2 Android的socket通信方式 5

2.3 MySql数据库 6

2.4 lucene的smartcn介绍 7

3 系统分析 8

3.1 需求分析 8

3.2 技术可行性分析 8

4 系统设计 8

4.1 系统总体架构设计 8

4.2 详细设计 9

4.2.1 客户端的设计 9

4.2.2 服务器端的设计 9

4.2.3 学习模块的设计 9

4.2.4 数据库设计 10

5 系统实现 10

5.1 开发环境的配置 10

5.2 模块实现 11

5.2.1 客户端布局页面 11

5.2.2 客户端的消息发送与接收 13

5.2.3 服务器端消息的处理 13

5.2.4 英语学习模块 16

6 系统效果演示 16

7 结论 18

8 讨论 18

参考文献 20

致 谢 21

“等待学习”聊天工具设计与实现

耿玉帆

,China

Abstract: In the current time, people are going to do more and more things.It is difficult to find a fixed time to learn English. At the same time more and more chat tools like QQ are designed. People are also like to use a chat tool to exchange the recent state of their own to their friends. But there are many time wasted while people wait for the responding.We can use these time to learn English words.In this passage,we design a chat tool “IM” to help people learn English,using these wasted time.

Key words: instant messaging, Android, socket , "waiting learning"

1 绪论

1.1 选题背景

移动网络随手机等移动设备的大量使用应运而生。从形式上来说,移动互联是移动化了的互联网,但是他具有互联网所不具有的很多特点。我们可以使用移动互联网随时随地的获取信息,实时的完成与外界的沟通,制作成本也相对较低。随着技术的发展,移动互联网的速度也是越来越快,这更加推动了越来越多的用户使用移动互联网这一趋势。目前国内常见的移动终端系统有Android,IOS和WindowsPhone,这使得手机从简单的打电话发短信等功能,发展到现在的各种娱乐,信息查询,办公于一体的强大工具,使与人们的生活密不可分。各种即时聊天app被开发使用,使手机聊天成为现实生活中人们交流的一个很重要的部分。

同时,随着现在全球化的趋势,学习一门外语对人们的职业规划和发展有很重要的意义。但是,现在生活节奏越来越快,人们很难腾出固定的时间进行语言的学习,往往是“三天打鱼,两天晒网”。从我们自身学习母语的过程来看,我们被大量的暴露在使用母语交流的人之中,就使得我们的母语学习称为水到渠成的事。外语的学习我们当然也可以创造这一个环境来学习。但是问题来了,日常生活的节奏如此之紧,我们如何腾出时间去外国生活一段时间来学习外语呢?看起来有点不可能。

为什么我们不把二者结合起来考虑呢?我们可不可以在平时手机聊天的时候创造出这样一个外语学习环境呢?这就是我门所要考虑的,即是文题所提出的“等待聊天学习工具”[7]。

1.2 开发“等待聊天学习工具”的意义

  1. 过推送与聊天内容相关的单词推荐,给用户构造一个英语学习环境,使人们在日常生活中学到词汇。将英语单词的学习有机的结合到日常的生活中,让人们自然而然的学到词汇,减少用户的抵触情绪。
  2. 充分的利用与朋友聊天的过程中等待对方回复的这一段“等待中的时间”,提高时间的利用率,节省时间[9]。

1.3 国内外研究现状

“微学习”和“移动学习”的理论早有提出,国内外许多学者也进行了很多的研究。“微学习”这一概念就是使学习者能在日常生活的点滴时间中学习知识。“移动学习”相比传统的学习方式来说,主要有随时随地可以学习这一特点,它的媒介(多指手机)是移动设备。结合这两者的理念,2015年麻省理工学院攻读计算机科学博士学位的Carrie Cai,设计了一款“WaitChatter”的谷歌聊天插件,这一插件是在让用户在等待好友回复信息的时候来认识一些法语或是西班牙语单词,但是尚不支持汉语使用者的英语单词学习。国内暂时尚未发现这一类的聊天插件。

2技术介绍

2.1 Java技术介绍

自1995年,美国的Sun Microsystems公司正式向IT界推出Java语言之后,因为该语言具有安全、跨平台、面向对象、简单易操作、源码开放的特点,大大的引起了所有程序员和程序公司的关注,大家纷纷开始利用Java语言进行程序的编写。大家将Java语言的实现结果通过互联网发布到了全世界,大大推动了Java的普及和发展。包括IBM、Oracle、微软、Netscape、Apple、SGI等大公司纷纷与Sun Microsystems公司签订合同,授权使用java平台技术。目前,Java语言已成为当今最流行的编程语言,很多大学纷纷开设了Java语言的学习课程。越来越多的人开始学习Java语言,Java语言也正逐步成为世界上使用者最多的编程语言。

Java语言主要具有以下特点[1]:

(1)面向对象,是现实世界模型的延伸,符合人们的思维模式,使人更容易编写程序,程序也更容易被人们所理解。传统的过程式编程语言为:程序=算法 数据;面向对象编程语言为:程序=对象 消息。 面向对象程序设计主要包括封装、继承和多态三个概念。

(2)与平台无关。Java的跨平台技术主要通过JVM虚拟机来实现。JVM也是一个软件,但他并不是跨平台的,不同的平台下有不同的JVM版本。我们编写的Java源码,编译后会生成一种 .class 的字节码文件。我们通过JVM来将编译好的字节码文件翻译成当前平台下可以识别的机器码,然后运行。也就是说,只要在不同平台上安装对应版本的JVM,Java编译形成的字节码文件就可以被翻译成当前平台可识别的机器码文件,然后运行,这样们编写的Java程序就在不同的平台上运行起来了。而这个过程中,我们编写的Java程序没有做任何改变,我们只是通过JVM这一中间件来实现和不同操作平台的匹配,真正实现了”一次编译,到处运行“的目的。

(3)Java支持多线程的实现。每一个Java程序都有一个主线程,程序运行时总是从main方法开始运行,如果我们在main方法中开启了一个新的子线程,那么虚拟机JVM就会在主线程和开启的子线程之间来回进行切换,保证子线程与主线程平等机会地使用CPU。只有这个程序中的所有线程都运行结束后,Java程序才会结束。

2.2 Android技术介绍

2.2.1 Android的系统架构

Android的系统架构采用了和其他操作系统一样的分层结构。Android分为四层,从低层到高层分别是Linux kernel(Linux核心层)、Libraries(系统运行库其中包括程序库和Android运行库)、Application Framework(应用程序框架层)和Application(应用程序层),如图2.1所示:

图2.1 Android的系统架构图

其中每一层的功能介绍如下:

(1)应用程序

Android的一些核心应用它的操作系统是一起发布的,这些核心应用包括日历、地图、浏览器、联系人、消息等管理程序。这些管理程序的所使用的编程语言都是Java语言。

(2)应用程序框架

Android中的所有核心应用的API框架都可以被开发人员完全访问。这一架构设计极大地方便了组件的重用:所有的应用程序都可以将他的功能模块发布出来并且它们的功能模块都可以被其他的应用程序所使用。于此同时,这个应用程序机制也可以方便用户替换程序组件。

每个应用后面都有一些隐藏的服务,其中主要包括以下几个服务:

* 视图(Views),Android的视图服务很丰富并且是可扩展的,可以用来构建应用程序。它包括网格、表格、文本框、按钮等,可以被嵌入到web浏览器中。

* 资源管理器(Resource Manager)。Android的资源管理器提供给应用程序非代码资源的访问,通过它应用程序可以访问本地的图形、字符串和布局文件等资源。

* 内容提供器(Content Providers)。它使得Android的应用程序之间可以互相访问各自的应用程序数据。

* 活动管理器(Activity Manager)。Android的活动管理器是用来对应用程序的生命周期进行管理的,它也可以提供给程序一些常用的功能,比如导航和回退功能。

(3)系统运行库

系统运行库由程序库和Android运行时库两部分构成。

* 程序库

Android系统中的组件可以使用Android系统所包含的一些C/C 库。这些C/C 库通过Android的应用程序框架进行封装,使应用开发人员可以方便地使用这些常用的系统服务。一些常用的核心库如下表2.1所示:

表2.1 常用的Android核心库

系统 C 库

继承自BSD的标准C系统函数库,它专门为基于embedded Linux的设备而定制。

媒体库

可以提供多种常用的音频、视频格式回放和录制功能,同时他也支持静态图像文件。常用的编码格式有MPEG4,AMR,JPG,PNG等。

Surface Manager

用户空间中framework下libraries中负责显示相关的一个模块。每个应用在系统上执行时,Surface Manager会负责管理显示与存取操作间的互动,另外应用程序所使用的2D和3D图形的无缝拼接服务也是由它提供的。

LibWebCore

默认的浏览器渲染引擎,用来驱动Android 浏览器和内嵌的web视图。

SGL

底层的2D图形引擎

3D libraries

基于OpenGL ES 1.0 APIs实现,这个库可以既可以支持硬件3D加速也可以支持3D软加速。

FreeType

位图(bitmap)和矢量(vector)字体显示。

SQLite

一个轻量级的关系型数据库,它所占用资源比较少,被很多嵌入式设备用来存储数据,有很好的兼容性。

*Android 运行库

Android拥有一个核心库,Java语言API的大多数功能都是被它所提供的。

剩余内容已隐藏,请支付后下载全文,论文总字数:15799字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;