印象社交应用软件的设计与开发.docx
- 文档编号:6228228
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:15
- 大小:78.27KB
印象社交应用软件的设计与开发.docx
《印象社交应用软件的设计与开发.docx》由会员分享,可在线阅读,更多相关《印象社交应用软件的设计与开发.docx(15页珍藏版)》请在冰豆网上搜索。
印象社交应用软件的设计与开发
印象社交应用软件的设计与开发
本项目的研究目标和最终成果即为印象社交应用平台,包括印象Android客户端,服务器以及数据库。
印象社交应用是一款基于图片分享的社交平台,包括注册、登录、发表以及浏览好友动态等功能,支持多用户同时登陆并向服务器上传下载数据。
本项目使用SqlServer2008作为数据库,使用ApacheTomcat作为服务器。
服务器端主要使用JavaEE开发服务器端应用程序,客户端使用装有ADT插件的Eclipse开发。
本论文主要从开发背景,软件实现的功能以及开发过程几个方面介绍本项目。
1.1项目来源
1随着信息化社会的不断深入以及信息技术的迅猛发展,我们的生活发生了天翻地覆的变化。
从一百多年前的电报、电话,到如今的互联网、计算机,尤其是近十年来智能移动设备的发展,也给信息社会带来了新的血液,属于移动平台的时代随之到来。
2移动改变生活,信息技术的深入发展为人们通信的便利提供了可能和便利。
随着Symbian、iOS以及Android等智能手机平台的发展和崛起,无数移动端社交通信软件纷纷崛起并越来越发展为人们主流的社交生活方式,这些应用给人们带来的实惠与便利也越来越使之得到更多人的青睐。
3出于一个程序员的视角和兴趣爱好,以及对当前潮流和基于的把握,我也选择了加入到智能手机平台的应用开发之中,并希望通过不断地改进和功能扩展给用户带来更多更实用的体验和帮助。
印象应用便是基于以上原因诞生的,它还小,但是还在成长。
1.2开发准备
1.2.1开发环境的准备
4鉴于本应用平台的开发需要后台的数据库和服务器以及需要Android客户端,所以需要有开发以上功能的开发环境。
在这里我选择使用性能比较稳定且更熟悉的SQLServer2008来进行数据库的开发,选择JavaEE版的Eclipse来进行服务器的开发,选择比较熟悉的装有ADT插件的Eclipse来进行客户端的开发。
安装并配置好以上开发工具就可以进行开发工作了。
1.2.2知识技能的准备
5并不是有了开发工具就能胜任该应用平台的开发工作,必须有相应的知识技能才能更加行云流水实施和完成开发工作。
6首先,对于数据库的开发,你需要有数据库的相关基础知识,包括SQL语言,数据库的相关概念和数据库的运行原理等,除此之外还要熟悉SQLServer2008的相关操作。
7其次,要完成对服务器的开发,你需要有对Java语言的比较好的掌握,对服务器端开发的经验以及Java连接SQLServer数据库的知识。
8最后,客户端的开发是整个开发流程中最后却是最关键最困难的一环,不仅仅是代码量大,更重要的需要的知识技能更多而且应用逻辑更加复杂。
进行客户端的开发需要Java语言基础,Android编程基础,网络编程相关知识以及比较好的逻辑思维能力,由于工程结构复杂、规模相对较大,要求开发者要有比较清晰的思路和冷静的应变能力。
第二章印象应用设计
2.1数据库设计
9本应用需要的数据库比较简单,原则上仅需两个表(User_table和Article_table)和一个视图(Article_all)即可。
User_table表(如图1)包含用户ID以及姓名等基本信息,Article_table表(如图2)包含状态ID以及图片、图片描述、用户ID等信息,其中,Article_table表中的用户ID与User_table表中的用户ID是一一对应的。
视图Article_all(如图3)是Article_table与User_table内联查询生成,扩展了Article_table中更多的用户信息(包括用户名等)以便在客户端需要时返回。
10数据库端主要是与服务器端进行连接实现数据的存储,更新,查询等功能。
11
12图1User_table表结构
13
14图2Article_table表结构
15
16图3Article_all视图结构
2.2服务器端设计
17服务器端实现的功能是与客户端的需求一一对应的,主要就是接收客户端的请求并进行相应的数据库查询,更新等操作,并将客户端需要的数据返回给客户端。
18下图(图4)是服务器端基本架构。
com.data包中为与客户端对应的数据模型,用于解析客户端发来的数据或者封装数据库中查询得到的数据并发送至客户端。
com.liujie.servlets包中为servlet类,用于实现不同的数据处理功能。
其中,Helloservlet为测试类,不再细述;Login为处理登录过程的servlet类,接收客户端发送的登录信息,并与数据库中进行校验,校验成功后返回成功登录信息,否则返回登录失败信息;Register处理注册功能,接收客户端发送的注册信息,与数据库端进行校验,若数据库端无此用户即添加到数据库并返回注册成功信息,否则返回注册失败信息;Getallarticles接收客户端发送的请求数据(包括用户ID等信息),然后向数据库查询相应数据,向客户端返回好友消息列表和个人消息列表;Uploadarticle接收客户端发送的数据(包括照片、文字说明以及用户ID等信息)并提取,然后向数据库请求更新Article_table中的数据,返回更新成功或者失败的信息;RefreshUser接收客户端发来的刷新用户信息的请求(包括用户ID等信息),然后从数据库中获取相应信息,封装成User类后返回客户端;UpdateInfo负责接收客户端发送的更新用户信息的请求以及数据,然后向数据库请求更新User_table中的数据,然后返回给客户端更新成功或者失败的信息;ViewOthers负责接收客户端发来的浏览好友个人主页的请求(包括用户ID等信息),然后查询数据库获取该用户ID的消息列表,封装后返回客户端。
图4服务器端程序结构
2.3客户端设计
客户端主要负责请求并接收数据并展示,因此界面设计和功能设计都很重要,下面是本应用的界面设计和功能设计。
2.3.1界面设计
19本应用分为7个界面,分别为:
启动界面,登陆界面,注册界面,主界面(包括3个tab页,分别是消息列表界面,图片上传界面,个人主页界面),个人信息界面,访问其他用户的个人主页界面,和关于界面。
相关具体描述见功能设计。
2.3.2功能设计
20功能与界面是分不开的,界面的设计就是为了辅助实现相应的功能。
本应用主要有以下功能,包括登录、注册、加载好友消息列表、大图浏览、图片分享、上传图片消息、设置个人信息、浏览好友主页等功能,详细介绍如下。
21打开应用后最先进入启动界面,启动界面显示应用logo和延时动画,数秒后会自动进入下一界面,若本地已有登录信息则直接进入主界面,否则进入登录界面;
22在登陆界面,用户需输入正确的用户名和密码,点击登录即可提交至服务器,服务器端校验正确后可以登录到主界面,否则需重新输入,若没有注册账号,可切换到注册界面;
23注册界面,用户需输入未被注册过的用户名和8位以上有效密码,提交后即可完成注册,注册成功后自动登录到主界面;
24进入主界面后会自动从服务器端获取好友消息列表并展示,点击消息列表中任一图片可进入大图浏览模式,长按某条消息弹出上下文菜单,选择分享可将该消息的图片分享至QQ、微信、微博、空间等支持分享功能的其它分享平台,点击好友用户名可进入他的个人主页;主界面的第二页为图片上传页,用户可以从相机或图库中获取图片,添加文字说明后即可上传至服务器;主界面的第三页为个人主页,显示个人头像、个性签名以及个人消息列表,点击头像可进入个人信息界面;
25在个人信息界面,用户可以浏览和修改个人信息,包括头像、个性签名、姓名、出生日期以及所在城市等;
26在访问其他用户的个人主页界面,用户可以浏览其他用户的消息列表;
27关于界面,显示当前应用版本。
28
第三章开发过程
3.1数据库开发
29数据库开发比较简单,主要分为以下几个步骤:
按照设计模型建表,植入原始数据,创建视图,设置sa账户等。
3.1.1建表
30本应用仅需用到两张表,用户表和消息表,在SQLServer2008中可直接在设计模式下添加字段并设置类型,即可完成建表工作。
3.1.2植入原始数据
31建表完成后可分别在用户表和消息表中插入数据,以供测试时使用。
3.1.3创建视图
32由于应用程序中在获取消息表中数据时会用到更多的用户信息,所以需要用到消息表与用户表内联查询得到的视图,可在数据库中插入新视图,选择需要的字段后保存为视图即可。
3.1.4设置sa账户
33服务器端连接数据库时会使用sa账户登录,因此需要给数据库设置sa账户登录方式。
可在该数据库的安全性中添加sa账户登录并设置密码,即可完成设置。
3.2服务器端开发
服务器端开发是与客户端开发穿插进行的,并不是先完成服务器端开发才开发客户端,因为服务器端完成的功能是与客户端的请求一一对应的,所以一般情况下是要在客户端确定某一功能需求并写好请求后才根据客户端请求数据的格式与需要返回数据来开发相应功能。
因此,服务器端的数据模型与客户端数据模型具有一致性,功能是映射关系。
3.2.1数据模型
34服务器端用到了5个数据模型,分别为Info、Logininfo、User、Article、和UploadInfo,相应地,客户端也同样有这几个数据模型。
35Info用于返回给客户端操作成功、失败或异常的状态和信息,包括status和message两个字段,分别表示操作的状态(成功、失败或异常)和信息(相关描述信息);
36Logininfo用于获取客户端发送来的登录或注册信息,包括user和pass两个字段,表示用户名和密码;
37User用于获取和返回用户信息,包括id、name、pass等信息;
38Article用于向用户返回从数据库中查询到的消息列表,包括article_id、image、user_name等信息;
39UploadInfo用于获取用户上传的图片信息;包括user_id、image等信息。
3.2.2servlet开发
40在客户端确定需求并写好向服务器发送数据的代码后,服务器端根据客户端发送的数据以及预期的返回数据编写相应的servlet类,用于根据客户端需求以及发送的参数查询或更新数据库并返回相应数据(操作成功失败信息以及其他查询结果)。
41比如客户端的登录功能需要将用户输入的用户名密码信息发送到服务器端进行校验,客户端对传入的用户名和密码与数据库中做对比,匹配成功后向客户端返回登陆成功信息;客户端更新消息列表需要服务器端查询数据库并返回消息列表;客户端上传图片功能需要服务器接收客户端发送的图片等数据并更新到数据库等等。
42servlet的作用就是接收客户端传来的参数并进行相关数据库操作,并返回给客户端一定的信息,比较简单,不再赘述。
3.3客户端开发
3.3.1数据模型
43客户端用到的数据模型与服务器端完全一样,分别为Info、Logininfo、User、Article、和UploadInfo,功能也基本相同,都是为了封装数据并在两端进行获取。
在此不再细述。
3.3.2layout开发
44layout即为安卓应用程序的布局文件,用于进行界面的布局设计,被程序代码获取后可渲染为软件的界面元素,是程序开发中很重要的元素。
45本应用中主要的layout文件有8个,分别用于渲染启动界面、登录界面、注册界面、主界面、大图浏览、个人信息界面、浏览他人的个人主页界面和关于界面。
ADT开发环境支持实时效果预览,可以边写布局文件边看渲染效果,非常方便,也可以通过真实或虚拟安卓设备进行测试,发现不足或者不满意的地方可以随时修改布局。
3.3.3其它资源的编写、导入
46安卓应用程序采取的是java类实例化引用资源的形式进行应用程序的开发和管理,具有结构性强、代码简洁、可维护性强的特点。
安卓应用程序具有一目了然的层次,不同的文件夹目录中用于存放不同的资源,如上文中layout文件即为布局资源,需要在java代码中获取生成layout对象才能使用。
相似地,安卓中还可以使用其它各种资源,如图片、音频、字符、颜色、动画、菜单、尺寸、样式等丰富的资源。
像音频、图片等资源,我们需要导入相应的音频或者图片文件;其它类型的我们需要编写相应的xml文件,用于描述资源属性。
47本程序中用的较多的为图片和动画资源,分别是靠导入图片和编写描述动画的xml文件来实现的。
3.3.4编写Activity
48Activity是安卓应用程序最为常用的组件,没有之一。
Activity用于获取布局资源并对布局元素进行初始化以及设置监听器等,简而言之,Activity就是带有图形界面的应用程序,程序界面的跳转也是通过加载不同的Activity实现的。
49本程序有8个Activity,对应应用的8个界面。
下面是8个页面对应的Activity代码所实现的逻辑功能(简述)。
50启动页面,加载启动页面的布局文件,设置并开始延时动画;读取内存中的状态值,如果有登录信息则直接转到主界面,否则跳转到登录页。
51登录页,加载登录页面的布局文件,给登录按钮和注册的标签添加监听器,分别用于执行登录操作和转到注册界面。
登录操作将用户输入的信息发到服务器进行校验,接收到成功信息即跳转到主界面。
52注册页,加载注册页面的布局文件,给注册按钮和回退按钮添加监听器,分别执行注册操作和回退到登录界面。
注册操作将用户输入的注册信息发送到服务器,接收到成功信息进入主界面。
53主界面,分为3个tab页,分别实现不同的用途。
首先加载布局文件并执行刷新操作,刷新操作会从服务器端获取好友消息列表以及个人消息列表(具体不赘述)并加载到tab1和tab3页的列表中,列表中的每一项添加监听器,点击图片即可进入大图浏览模式,点击用户名会进入该好友个人主页,长按列表项跳出分享菜单,可将图片分享至其它应用。
tab2页中给拍照、图库和上传按钮添加监听器,分别用于从相机、图库中选择照片以及执行上传操作,上传操作会将照片以及文字信息上传到服务器。
tab3页顶部显示个人头像和签名,个人头像及背景被设置监听器,点击会进入个人信息页。
主界面会加载菜单资源并解析为菜单,菜单有三个项,分别执行跳转到关于页、切换账号和退出功能。
浏览好友的个人主页,加载布局文件,并执行刷新操作,刷新操作会从服务器端获取该好友消息列表以及个人消息并加载到列表和页面顶部。
个人信息页,加载布局文件,并解析从主界面传来的用户信息数据加载到布局元素中,为布局元素中的标签和更新按钮添加监听器。
点击标签弹出对话框可以输入新的数据替换标签内容,点击更新按钮将修改后的数据上传到服务器。
关于界面,加载布局文件,版本号标签读取版本号并显示,返回按钮设置监听器执行回退操作。
至此,客户端的开发过程结束。
第五章结束语
本文的最终成果即为印象社交平台,包括客户端、服务器和数据库部分,并且已经实现了预期的功能,包括注册、登录、上传照片、更新消息列表、更新用户信息、大图浏览照片以及分享等功能。
但也存在明显的不足,比如界面还不够美观、缺少添加好友等功能以及没有本地缓存等功能。
鉴于时间的和知识水平的限制,目前仅做到如此程度,但在不久的将来,我会在此基础上不断地完善和改进,以期越来越好。
通过对印象社交平台的构想、设计、开发与调试,我进一步地学习和掌握了安卓移动应用的开发技巧和技能,对安卓平台有了新的认识。
对本文来说,我又掌握了很多新的知识技能,比如网络编程,比如服务器端开发等等。
学无止境,我会在学习的道路上走的更远。
附录
印象应用软件使用手册
1引言
1.1编写目的
编写本使用手册的目的是完整的叙述本应用的功能,运行环境,操作规范以及其它的使用技巧和准则,以便使用户对本应用有更多更好的认识,防止因操作不规范而给用户带来很大的困扰和不便,本手册附有基本操作示例和截图,以及软件维护的相关信息。
1.2读者对象
本手册的读者应为下载安装了印象社交应用的使用者或其他对本应用感兴趣的机友,相信本文档会给大家比较大的帮助。
1.3参考资料
[1]Android开发宝典,王国辉、李伟著,机械工业出版社出版;
[2]Java面向对象程序设计,杨晓燕著,电子工业出版社;
1.4项目背景
本项目是本人大四文期间的成果,由于考虑到目前移动应用领域社交类的应用发展的如火如荼,加之本人对移动应用开发有着浓厚的兴趣,也是为了更一步锻炼自己的能力,故此着手该项目的设计研发工作。
本人对Android应用开发有着浓厚的兴趣以及一定的开发基础,对该项目实施所需的技术技能也是比较充足的,因此项目实施过程中还是比较顺利的。
关于分享类的社交平台眼下有很多,功能相当强大的也不少。
本应用的独特之处在于专注于图片的分享,支持调用相机现场拍摄,很方便,也很便捷。
2软件概述
2.1软件用途
本项目的成果即为印象APP(Android版),主要用于分享生活图片和心情,以及查看好友发表的图片心情等。
本软件实现的功能有:
注册、登陆app;浏览好友动态;调用相机拍照或从图库中选择照片上传;浏览个人发表的状态,删除个人发表的状态;浏览个人信息,删除个人信息等等。
2.2软件运行
本软件运行在安卓系统的手机或平板上,需要Android3.0及以上的版本才能安装运行,在软件安装后,直接点击相应图标,即可打开软件,进行需要的软件操作。
2.3系统配置
本软件要求在安卓系统的手机或平板上运行,安卓版本3.0及以上。
2.4输入、处理、输出
2.4.1输入
首次运行需要登录或者注册,输入账号密码信息上传至服务器,向服务器请求成功后即可进入主页面;上传页需要选择图片或拍照以及添加照片描述等信息,点击上传后会将相关数据上传至服务器;主页面点击消息列表中某一项的用户名会进入他的个人主页;个人信息页如需修改需要输入相关信息,修改头像需要调用相机或从图库中获取,然后上传至服务器。
2.4.2处理
以上输入过程会在服务器端执行对数据库的更新和查询的操作;注册功能会向服务器的用户表中插入新的用户信息;照片上传功能会在服务器的状态表里插入新的状态信息;进入好友个人主页后会自动向服务器请求数据,返回该好友的一些个人信息以及发表的状态;个人信息修改功能会更新服务器用户表中相应用户的信息;用户进入主页面后会自动向服务器请求数据并加载至状态列表。
2.4.3输出
本应用的输出主要包括主页面好友的状态列表,个人主页的个人信息和个人状态列表,个人
信息页的个人信息,以及各种状态提示信息。
3软件使用过程
3.1软件安装
找到软件安装包即apk文件,点击即可开始安装,安装完成后运行,首次运行需要登录或者注册。
3.2运行表
启动界面
显示启动界面并执行延时性操作,若干秒后进入下一界面;首次运行进入登录界面,如果之前有过注册或登录成功的操作则会直接进入主界面。
登录界面
如果已有账号可以输入账号密码登录到主界面;没有账号的话可以切换到注册界面。
注册界面
没有账号的可以输入账号密码注册新账号,成功后直接进入主界面;返回至登录界面。
主界面
主界面分为3个tab页面:
好友圈,上传页,个人主页;
好友圈显示好友状态列表;
上传页可以通过图库或拍照获取图片并上传至服务器;
个人主页显示个人头像和个人状态列表;
点击好友圈好友状态中某一条的用户名可以进入他的个人主页;
点击个人主页的个人头像可进入个人信息页查看和修改个人头像等信息;
点击menu弹出菜单,点击菜单中的设置也可以可进入个人信息页查看和修改个人头像等信息;点击切换账号可以清除登录信息并切换到登录界面重新登录;点击退出即退出本软件;
显示课程列表(基本的课程名称、教师姓名及教室信息);点击某一课程进入课程详情界面;点击添加按钮进入添加课程界面;点击刷新按钮执行刷新操作;按下Menu键弹出菜单选项,分别可以进入设置界面或者退出程序。
个人主页界面
显示该好友的个人头像以及状态列表,点击返回可返回至主页面;
个人信息页
查看和修改个人信息,包括头像、签名、姓名等等。
3.3运行步骤
下载软件安装包并安装,启动应用;
应用启动后会进入启动页面,首次启动会进入登录页面,注册过的用户可以直接输入账号密码登录到主页面,否则可以点击下方的注册账号切换到注册页面;
注册界面输入合适的账号密码即可注册,注册成功后会进入到主界面;
主界面会显示第一个tab页面即好友圈页面,自动从服务器请求好友动态列表并加载,点击右上角刷新按钮会再次刷新;你也可以点击好友动态列表中的某一项的用户名进入他的个人主页浏览他的动态,然后也可以返回到主界面;
主界面第二个tab页面为上传页面,你可以从图库或者调用相机拍照来选择照片,并添加相关描述信息后点击上传即可上传到服务器,上传成功后会自动跳到第一个tab页并刷新动态列表;
主界面第三个tab页面为个人主页,显示个人头像及个人个人动态列表,可以浏览个人动态,点击个人头像可以进入个人信息界面,用户在个人信息界面可以浏览和修改个人信息,包括头像,个性签名,姓名,性别等等;
在主界面的任何一个tab页都可以点击menu键调出菜单,有三个菜单项,分别是设置、切换账号和退出,点击设置进入个人信息界面;点击切换账号会清除用户登录信息并切换到登陆界面重新登录;点击退出即退出本软件。
3.4出错处理
安卓系统具有软件异常处理机制,强行关闭本软件,并保存数据的修改。
3.5非常规过程
如果出现不能处理的问题,可以直接与开发人员联系。
4软件维护
本软件将会被开发人员长期维护,修复软件运行过程中的异常问题,在后续版本中会增加反馈功能,不断自我改进以及根据用户使用后的反馈意见修改和完善软件的功能。
印象应用软件许可及服务协议
1协议的范围
1.1 协议适用主体范围
本协议是你下载、安装、使用、复制本软件,以及使用本软件相关服务所订立的协议。
2关于本服务
2.1 本服务的内容
本服务内容是指向用户提供的社交通讯工具即印象应用(以下简称“印象”),为用户提供包括用户分享图片心情以及查看好友动态等功能及服务;
2.2 本服务的形式
2.2.1 你使用本服务需要下载印象客户端软件,并注册账号使用印象提供的相关服务。
2.2.2 本服务中目前仅提供Android版本的客户端,需要Android版本3.0以上,请务必在您的设备符合要求的情况下下载安装并使用本服务。
2.3 本服务许可的范围
2.3.1 本服务给予你一项个人的、不可转让及非排他性的许可,以使用本软件。
你可以为非商业目的在单一台终端设备上安装、使用、显示、运行本软件。
2.3.2 你可以为使用本软件及服务的目的复制本软件的一个副本,仅用作备份。
备份副本必须包含原软件中含有的所有著作权信息。
3软件的获取
3.1 你可以直接从作者的XX云相关分享中下载获取本软件。
3.2 如果你从其它非正规渠道获取了同名的软件,本人无法保证该软件能够正常使用,并对因此给你造成的损失不予负责。
4软件的安装与卸载
4.1 目前仅推出Android版本的客户端软件,要求Android版本3.0及以上,请根据设备情况选择是否安装。
4.2 下载安装文件后,你需要按照安装提示的步骤正确安装。
4.4 如果你不再需要使用本软件或者需要安装新版软件,可以自行卸载。
5软件的更新
5.1 为了改善用户体验、完善服务内容,本人将不断努力开发新的服务,并为你不定时提供软件更新(这些更新可能会采取软件替换、修改、功能强化、版本升级等形式)。
5.2 本软件新版本发布后,旧版本的软件可能无法使用。
本服务不保证旧版本软件继续可用,请你随时核对并下载最新版本。
6用户个人信息保护
6.1 保护用户个人信息是一项基本原则。
除法律法规规定的情形外,未经用户许可本服务不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 印象 社交 应用软件 设计 开发
![提示](https://static.bdocx.com/images/bang_tan.gif)