基于BS架构的Android手机的文件传输系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+
闽江学院
工程化综合训练报告
题目:基于B/S架构的手持机文件传输功
能(Android)
1
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:
指导教师签名:日期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日
导师签名:日期:年月日
指导教师评阅书
评阅教师评阅书
教研室(或答辩小组)及教学系意见
闽江学院工程化综合训练任务书
计算机科学院系嵌入式方向教研室
闽江学院
工程化综合训练
基于B/S架构的手持机文件传输功能
(Android)
需求分析说明书
1.引言
1.1编写目的
需求说明的编写是为了研究基于B/S架构的手持机文件传输功能(Android)的开发途径和应用方法。
同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。
本文档将对《基于B/S架构的手持机文件传输功能(Android)》软件开发需求进行描述。
本需求的预期读者是与此软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。
1.2背景
随着计算机技术的快速发展,基于B/S架构的信息技术得到了大规模的应用。
信息时代的到来,手持机的普及。
市场上越来越多的Android手机受到广大消费者的欢迎。
在快餐时代的今天,生活高节奏化,很多消费者出门会忘记带数据线。
我们这款软件就是考虑到消费者忘记带数据线的情况下如何利用局域网进行文件传输,通过手机架构一个服务器,在局域网内的笔记本可以通过上网将文件传输到服务器上,在手机sd卡上面找到对应的文件,实现手持机文件传输功能。
该软件给Android手机用户提供了便利以及快捷的文件传输功能。
开发软件名称:基于B/S架构的手持机文件传输功能(Android)
项目开发者:闽江学院计算机科学系实训小组
用户单位: Android手机用户
1.3定义
B/S架构:(Browser/Sever,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
文件传输:File transfer通过一条网络连接从远地站点(remote site)向本地主机(local host)复制文件。
1.4参考资料
I-jetty 软件简介 -/p/i-jetty/ 《java程序设计语言基础篇》 - 李娜(西安电子科技大学)业出版社Android端i-jetty服务器开发 - 百度文库
2、任务概述
2.1目标
本系统通过强大的计算机技术给Android手机用户文件传输带来便利。
目标还包括:
●减少人力的浪费与数据线的费用;
●改进文件传输的模式和服务理念;
●建立高效的信息传输和服务平台,为用户提供便利;
●系统设计优良,界面设计精美、友好、快捷,人性化设计,后台服务器
功能强大、效率高;
●更简便、信息化程度更高的文件传输流程;
2.2用户特点
本软件的最终用户是面向Android手机用户,使用Android手机的用户其年龄层次分布不均,较青年者比较熟悉计算机,可以很好的掌握这一软件的使用;较年老者对计算机并不熟悉,需要一定的讲解与说明,帮助其使用此功能。
系统维护人员为计算机专业人员,熟悉B/S架构、操作系统、网络维护工作。
维护人员为间隔性用户。
1.人力资源约束:
a. 估计开发该系统需购买硬件、外部设备(PC微机一台、Android手机一台),花费1万元左右,开发工作量约需1个人月工作量,共需要4名人员,其中开发人员2名,文档编辑人员1名,测试人员1名。
b.辅导老师2人。
2.技术约束:
本项目的设计是在Java程序设计语言的条件下进行的,技术设计采用软硬一体化的设计方法。
3.环境约束:
运行该软件所适用的具体设备必须是奔腾4、内存256MB以上的计算机,Android手机
3、需求规定
在快餐时代的今天,生活高节奏化,很多消费者出门会忘记带数据线。
我们这款软件就是考虑到消费者忘记带数据线的情况下如何利用局域网进行文件
传输,通过手机架构一个服务器,在局域网内的笔记本可以通过上网将文件传输到服务器上,上传成功后在手机sd卡上面找到对应的文件,实现手持机文件传输功能。
该软件给Android手机用户提供了便利以及快捷的文件传输功能。
3.1对功能的规定
通过局域网连接PC与Android手机,实现文件的传输功能。
3.2传输文件限制
文件大小限制为10m,文件类型理论上不限,但为了便于查看验证,建议限制为图片或文档类。
3.3传输速率
传输速率取决于手机网卡性能。
3.4可移植性
安卓2.3及以上系统均可适用
3.5数据管理能力要求
工程流程图:
图3.5工程流图
3.6其他专门要求
数据的安全性、完整性要求:
传输的文件必须保证安全性和完整性。
4、运行环境规定
4.1硬件环境
服务器
(1) 处理器(CPU):Android 2.3
(2) 内存容量(RAM):128M或更高
客户端
(1) 处理器(CPU):Pentium 133M 或更高
(2) 内存容量(RAM):256M或更高
4.2软件环境
Web服务器端
(1) 操作系统:Android 2.3
(2) i-jetty
客户端
(1) 操作系统:Windows 98/2000/2003/XP
(2) Web浏览器:Internet Explorer 5.0以上或Netscape 4.0以上
开发工具:
(1)MyEclipse
(2)Dreamweaver
(3)Photoshop
4.3接口
硬件接口:
考虑到大量数据的备份等要求,需要保持Android手机与计算机网络连通。
4.4控制
由于本系统采用目前的主流技术,只需要以Windows 2000或NT以上核心操作系统来控制网页运行,至于其它则无。
闽江学院
工程化综合训练
基于B/S架构的手持机文件传输功能
(Android)
概要设计说明书
成员: 120101101211 吴辉
120101101212 薛丹丹
120101101229 王楷木
120101101230 周俊杰
指导教师:陈新伟陈靖
2013 年 11 月 1 日
1、引言
1.1编写目的
编写这份概要设计说明书目的一是指导项目成员进行开发,以保证项目进行的延续性和稳定性,另外由于本项目属于科研项目范畴,该概要设计说明书将成为本科研课题的一项重要依据。
1.2背景
◆项目名称:基于B/S架构的手持机文件传输功能(Android)
◆项目功能:本软件运行在PC(Windows系统)与android手机上,PC必
须与android手机在同一个局域网内。
用户首先在android手机上用
I-jetty软件架构一个服务器,再在PC端上上传文件至服务器,然后即
可在android端sd卡上找到该文件。
文件大小不超过10M,但为方便检
验与传输,建议文件类型为图片或文档类。
◆项目开发者:王楷木(组长),吴辉,薛丹丹,周俊杰
◆项目承接单位:闽江学院计算机科学系实训小组
◆最终用户:面向Android手机用户
1.3定义
B/S架构:(Browser/Sever,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
文件传输:File transfer通过一条网络连接从远地站点(remote site)向本地主机(local host)复制文件。
2、总体设计
2.1需求规定
在快餐时代的今天,生活高节奏化,很多消费者出门会忘记带数据线。
我们这款软件就是考虑到消费者忘记带数据线的情况下如何利用局域网进行文件传输,通过手机架构一个服务器,在局域网内的笔记本可以通过上网将文件传输到服务器上,上传成功后在手机sd卡上面找到对应的文件,实现手持机文件传输功能。
该软件给Android手机用户提供了便利以及快捷的文件传输功能。
2.1.1对功能的规定
●构建服务器
从网站下载i-jetty服务器的压缩包。
1. 将jetty解压缩后复制到任何一个目录下,注意尽量不要包含中文路径。
2. 打开命令提示符窗口,找到jetty的路径,使用命令启动服务:java –jar start.jar 要注意你的电脑上必须有jdk并且配置了环境变量。
这样服务就启动起来了,服务器默认的端口是8080,
●PC机向手机传输文件
PC端登陆文件传输系统页面,上传文件,上传成功后,在手机端/sdcar/Download/目录下找到对应的文件。
2.1.2对性能的规定
●传输文件限制
文件大小限制为10m,文件类型理论上不限,但为了便于查看验证,建议限制为图片或文档类。
●传输速率
传输速率取决于手机网卡性能。
●可移植性
安卓2.3及以上系统均可适用
2.2运行环境规定
2.2.1硬件环境
服务器
(1) 处理器(CPU):Android 2.3
(2) 内存容量(RAM):128M或更高
客户端
(1) 处理器(CPU):Pentium 133M 或更高
(2) 内存容量(RAM):256M或更高
2.2.2软件环境
Web服务器端
(1) 操作系统:Android 2.3
(2) i-jetty
客户端
(1) 操作系统:Windows 98/2000/2003/XP
(2) Web浏览器:Internet Explorer 5.0以上或Netscape 4.0以上
开发工具:
(4)MyEclipse
(5)Dreamweaver
(6)Photoshop
2.2.3接口
硬件接口:
考虑到大量数据的备份等要求,需要保持Android手机与计算机网络连通。
2.2.4控制
由于本系统采用目前的主流技术,只需要以Windows 2000或NT以上核心操作系统来控制网页运行,至于其它则无特殊要求。
2.3 系统框架
图2.3系统框架图
2.4结构
2.4.1基于B/S 架构的手持机文件传输功能(Android )
本数据处理平台包括三个模块,分别为:
表2.4.1模块功能表具体功能定义如下:
2
、servlet 容器:
HTTP 服务和servlet 容器协同工作,使Jetty 成
为动态的web 服务器
3、jetty client 组件:
可以方便的向web 服务器发送HTTP 请求和处理
HTTP 响应
4、异步servlet :
允许在某个时刻挂起当前请求,释放被绑定的线
程,然后当该请求被执行时,Jetty 会分配一个线程来
继续该请求
1、HTTP 服务:
进一步成为web 容器,来提供动态的HTTP 内容
模块一
PC 端 1、首页(Index ): 文件传输系统首页 2、添加文件(Add File ):
添加需传送给手机的文件
3、上传处理 (Uploadservlet): 处理上传功能
4、上传成功(Success.html): 显示成功的结果
5、上传失败(fail.html ):
发生异常的结果
2.5功能需求与程序的关系
3.系统出错处理设计
3.1出错信息
对个人分工模块进行检查以及出错信息采集,发现问题之后首先做记录,然后报给设计人员进行更改,力求更完善的系统。
3.2补救措施
说明故障出现后可能采取的变通措施,包括:
a. 后备技术说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术。
b .降效技术说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分。
c .恢复及再启动技术说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。
模块三 手机端
闽江学院
工程化综合训练
基于B/S架构的手持机文件传输功能
(Android)
详细设计说明书
成员: 120101101211 吴辉
120101101212 薛丹丹
120101101229 王楷木
120101101230 周俊杰
指导教师:陈新伟陈靖
2013 年 11 月 4 日
1.引言
1.1目的
本说明书的编写是为了让开发人员详细了解基于B/S架构的手持机文件传输功能(Android)。
应该完成的功能和各模块输入、处理、输出关系指导开发人员正确高效的完成产品的设计。
同时作为测试人员的参考资料使用。
面向的读者:硬件设计师、软件设计师、测试人员、评审员。
1.2 背景
◆项目名称:基于B/S架构的手持机文件传输功能(Android)
◆项目功能:本软件运行在PC(Windows系统)与android手机上,PC必
须与android手机在同一个局域网内。
用户首先在android手机上用
I-jetty软件架构一个服务器,再在PC端上上传文件至服务器,然后即
可在android端sd卡上找到该文件。
文件大小不超过10M,但为方便检
验与传输,建议文件类型为图片或文档类。
◆项目开发者:王楷木(组长),吴辉,薛丹丹,周俊杰
◆项目承接单位:闽江学院计算机科学系实训小组
◆项目的种类:科研开发项目组。
◆最终用户:面向Android手机用户
1.3定义
B/S架构:(Browser/Sever,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
I-jetty:Jetty是一款运行在Android平台的并且流行的web服务器,为在手机上实现个人web服务的世界提供了可能,可以让您在手机环境中运行存在的web 应用程序。
文件传输:File transfer通过局域网连接从远地站点(remote site)向本地主机(local host)复制文件。
Web browser:网络浏览器
HTTP:Hyper Text Transfer Protocol(超文本传输协议)
HTML:Hyper Text Markup Language (超文本标记语言)
1.4 参考资料
I-jetty 软件简介 -/p/i-jetty/
《java程序设计语言基础篇》 - 李娜(西安电子科技大学)翻译机械工业出版社
Android端i-jetty服务器开发 - 百度文库
2. 文件传输系统详细设计
2.1 文件传输系统结构图
图2.1文件传输系统结构图
具体功能定义如下:
2、servlet容器:
HTTP服务和servlet容器协同工作,使Jetty成为动态的
web服务器
3、jetty client组件:
可以方便的向web服务器发送HTTP请求和处理HTTP
响应
4、异步servlet:
允许在某个时刻挂起当前请求,释放被绑定的线程,然
后当该请求被执行时,Jetty会分配一个线程来继续该请求模块一
PC端
1、首页(Index):
文件传输系统首页
2、添加文件(Add File):
添加需传送给手机的文件
3、上传处理(Uploadservlet):
处理上传功能
4、成功结果(Success):
显示成功的结果
5、失败结果(exception):
发生异常的结果
1、HTTP服务:
进一步成为web容器,来提供动态的HTTP内容
模块三
手机端
3.1 I-jetty服务器的安装及系统环境配置
i-jetty
3.1.1下载安装包
3.1.2 安装成功后手机显示图标
3.1.3打开I-jetty界面
3.2.1 网页界面模块
主页模块展示及代码详解
图3.2.1 文件大小控制模块
图3.2.2网页背景设置
图3.2.3按钮布局设置
图3.2.4 表单
图3.2.5 主页
上传成功页面模块展示及代码详解
图3.2.6 跳转与背景图片
图3.2.7 上传成功
上传失败页面模块展示及代码详解
图3.2.8 跳转与背景图片
图3.2.9 上传失败
3.2.2 文件传输功能代码
代码模块一:解析表单
public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
final int NONE = 0; // 状态码,表示没有特殊操作
final int DATAHEADER = 1; // 表示下一行要读到报头信息
final int FILEDATA = 2; // 表示下面要读的是上传文件和二进制数据final int FIELDDATA = 3; // 表示下面要读到表单域的文本值
try {
// 请求消息实体的总长度(请求消息中除消息头之外的数据长度)
int totalbytes = request.getContentLength();
// 容纳请求消息实体的字节数组
byte[] b = new byte[totalbytes];
// 请求消息类型
String contentType = request.getContentType();
String fieldname = ""; // 表单域的名称
String fieldvalue = ""; // 表单域的值
String filename = ""; // 上传的文件名称
String boundary = ""; //分界符字符串
String lastboundary = ""; // 结束分界符字符串
int fileSize = 0; // 文件长度
// 容纳表单域的名称/值的哈希表
Hashtable formfields = new Hashtable();
// 在消息头类型中找到分界符的定义
int pos = contentType.indexOf("boundary=");
if (pos != -1) {
pos += "boundary=".length();
boundary = "--" + contentType.substring(pos); // 解析出分界符
lastboundary = boundary + "--"; // 得到结束分界符
}
int state = NONE; // 起始状态为NONE
// 得到请求消息的数据输入流
DataInputStream in = new DataInputStream(request.getInputStream());
in.readFully(b); // 根据长度,将消息实体的内容读入字节数组b中
in.close(); // 关闭数据流
String reqcontent = new String(b); // 从字节数组中得到表示实体字符串
// 从字符串中得到输出缓冲流
BufferedReader reqbuf = new BufferedReader(new StringReader(reqcontent));
// 设置循环标志
boolean flag = true;
int i = 0;
while (flag == true) {
String s = reqbuf.readLine();
if (s == lastboundary || s == null) break;
switch (state) {
case NONE:
if (s.startsWith(boundary)) {
// 如果读到分界符,则表示下一行一个头信息
state = DATAHEADER;
i += 1;
}
break;
case DATAHEADER:
pos = s.indexOf("filename=");
// 先判断出这是一个文本表单域的头信息,还是一个上传文件的头信息
if (pos == -1) {
// 如果是文本表单域的头信息,解析出表单域的名称
pos = s.indexOf("name=");
pos += "name=".length() + 1; // 1表示后面的"的占位
s = s.substring(pos);
int l = s.length();
s = s.substring(0, l-1);
fieldname = s; // 表单域的名称放入fieldname
state = FIELDDATA; //设置状态码,准备读取表单域的值
}
else {
// 如果是文件数据的头,先存储这一行,用于在字节数组中定位
String temp = s;
// 先解析出文件名
pos = s.indexOf("filename=");
pos += "filename=".length() + 1; //1表示后面的"的占位
s = s.substring(pos);
int l = s.length();
s = s.substring(0, l-1);
pos = stIndexOf("\\");
s = s.substring(pos + 1);
filename = s; // 文件名存入filename
// 下面这一部分从字节数组中取出文件的数据
System.out.println(filename);
pos = byteIndexOf(b, temp, 0); // 定位行
// 定位下一行,2 表示一个回车和一个换行占两个字节
b = subBytes(b, pos + temp.getBytes().length+2, b.length);
// 再读一行信息,是这一部分数据的Content-type
s = reqbuf.readLine();
代码模块二:写文件
// 设置文件输入流,准备写文件
File f = new File("/sdcard/Download/" + filename);
DataOutputStream fileout = newDataOutputStream(new FileOutputStream(f));
// 字节数组再往下一行,4表示两回车换行占4个字节,本行的回车换行2个字节,Content-type的下
// 一行是回车换行表示的空行,占2个字节
// 得到文件数据的起始位置
b = subBytes(b, s.getBytes().length + 4, b.length);
pos = byteIndexOf(b, boundary, 0); // 定位文件数据的结尾
b = subBytes(b, 0, pos - 1); //取得文件数据
fileout.write(b, 0, b.length - 1); //将文件数据存盘
ileSize = b.length - 1; //文件长度存入fileSize
state = FIELDDATA;
}
break;
case FIELDDATA: // 读取表单域的值
s = reqbuf.readLine();
fieldvalue = s; // 存入fieldvalue
formfields.put(fieldname, fieldvalue);
state = NONE;
break;
case FILEDATA:
// 如果是文件数据不进行分析,直接读过去
while ((!s.startsWith(boundary)) && (!s.startsWith(lastboundary))) {
s = reqbuf.readLine();
if (s.startsWith(boundary)) {
state = DATAHEADER;
} else {
break;
}
}
break;
}
}
request.getRequestDispatcher("/success.html").forward(request, response);
}
catch (Exception e) {
request.getRequestDispatcher("/fail.html").forward(request, response);
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
private static int byteIndexOf(byte[] b, String s, int start) {
return byteIndexOf(b, s.getBytes(), start);
}
/**
* 字节数组中的indexOf函数,与String类中的indexOf类似b 要搜索的字节数组s 要找的字节数组start 搜索的起始位置
* 如果找到,返回s的第一个字节在b中的下标,没有则返回-1
*/
private static int byteIndexOf(byte[] b, byte[] s, int start) {
int i;
if (s.length == 0) {
return 0;
}
int max = b.length - s.length;
if (max < 0) {
return -1;
}
if (start > max) {
return -1;
}
if (start < 0) {
start = 0;
}
// 在b中找到s的第一个元素
search: for (i = start; i <= max; i++) {
if (b[i] == s[0]) {
// 找到了s中的第一个元素后,比较剩余的部分是否相等
int k = 1;
while (k < s.length) {
if (b[k + i] != s[k]) {
continue search;
}
k++;
}
return i;
}
}
return -1;
}
/**
* 用于从一个字节数组中提取一个字节数组类似于String 类的substring() */
private static byte[] subBytes(byte[] b, int from, int end) {
byte[] result = new byte[end - from];
System.arraycopy(b, from, result, 0, end - from);
return result;
}
/**
* 用于从一个字节数组中提取一个字符串类似于String类的substring()
*/
private static String subBytesString(byte[] b, int from, int end) {
return new String(subBytes(b, from, end));
}
}
3.2.3 项目的移植
因为android上的java虚拟机不能直接解释执行.class文件,所以首先需要把web项目中的.class文件和.jar文件转换成虚拟机能识别的.dex文件
这里假设web项目的目录在:E:\demo
1.需要将WEB-INF/classes目录和lib目录下的文件,用dx命令处理成classes.dex并放到lib目录下,进入window的dos,进入Android的SDK,,用dx.bat打包。
d:
cd adt-bundle-windows-x86-20130917
cd sdk
cd platform-tools
dx.bat --dex --output=E:\demo\WEB-INF\lib\classes.zip E:\demo\WEB-INF\classes E:\demo\WEB-INF\lib
2.打成war包,进入项目目录中。
cd E:\demo
jar -cvf demo.war *.*
3.生成classes.zip后,可以将原先的.class和.jar删除掉。
4.通过i-jetty的download功能,把war下载到设备上去,
也可以直接把demo.war放到/sdcard/jetty/webapps/目录下。
5.启动i-jetty。
4.工程化实训小组组成及分工
4.1小组组成
4.2小组进度及成员分工
5.具体操作与效果演示
5.1 设置Android手机便携式热点
图 5.1 设置便携式热点5.2 PC端连接wifi
图 5.2 连接wifi 5.3 打开i-jetty
图 5.3 打开i-jetty
5.4 PC机通过浏览器访问文件传输网页
图5.4.1网页地址
图5.4.2 上传首页
5.5 进行上传,显示结果
图5.5.1 选择上传文件
图5.5.2 上次成功界面
图5.5.3 上次失败界面
5.6 检查上传文件的完整性
上传成功手机sd卡上即可接收到文件
图5.6 手机接收的文件
闽江学院
工程化综合训练
基于B/S架构的手持机文件传输功能
(Android)
用户使用说明书
成员: 120101101211 吴辉
120101101212 薛丹丹
120101101229 王楷木
120101101230 周俊杰
指导教师:陈新伟陈靖
2013 年 11 月 15 日
1.引言
1.1编写目的
需求说明的编写是为了研究基于B/S架构的手持机文件传输功能(Android)的开发途径和应用方法。
同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。
本文档将对《基于B/S架构的手持机文件传输功能(Android)》软件开发需求进行描述。
本需求的预期读者是与此软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。
1.2背景
随着计算机技术的快速发展,基于B/S架构的信息技术得到了大规模的应用。
信息时代的到来,手持机的普及。
市场上越来越多的Android手机受到广大消费者的欢迎。
在快餐时代的今天,生活高节奏化,很多消费者出门会忘记带数据线。
我们这款软件就是考虑到消费者忘记带数据线的情况下如何利用局域网进行文件传输,通过手机架构一个服务器,在局域网内的笔记本可以通过上网将文件传输到服务器上,在手机sd卡上面找到对应的文件,实现手持机文件传输功能。
该软件给Android手机用户提供了便利以及快捷的文件传输功能。
开发软件名称:基于B/S架构的手持机文件传输功能(Android)
项目开发者:闽江学院计算机科学系实训小组
用户单位: Android手机用户
1.3定义
B/S架构:(Browser/Sever,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
文件传输:File transfer通过一条网络连接从远地站点(remote site)向本地主机(local host)复制文件。
1.4参考资料
I-jetty 软件简介 -/p/i-jetty/ 《java程序设计语言基础篇》 - 李娜(西安电子科技大学)业出版社
Android端i-jetty服务器开发 - 百度文库
2.系统综述
2.1系统总体结构
图2.1系统总体框架图
2.2对功能的规定
●构建服务器
从网站下载i-jetty服务器的压缩包。
1. 将jetty解压缩后复制到任何一个目录下,注意尽量不要包含中文路径。
2. 打开命令提示符窗口,找到jetty的路径,使用命令启动服务:java –jar start.jar 要注意你的电脑上必须有jdk并且配置了环境变量。
这样服务就启动起来了,服务器默认的端口是8080,
●PC机向手机传输文件
PC端登陆文件传输系统页面,上传文件,上传成功后,在手机端
/sdcar/Download/目录下找到对应的文件。
2.3对性能的规定
●传输文件限制
文件大小限制为10m,文件类型理论上不限,但为了便于查看验证,建议限制为图片或文档类。
●传输速率
传输速率取决于手机网卡性能。
●可移植性
安卓2.3及以上系统均可适用
2.4运行环境规定
2.4.1硬件环境
服务器
(1) 处理器(CPU):Android 2.3
(2) 内存容量(RAM):128M或更高
客户端
(1) 处理器(CPU):Pentium 133M 或更高
(2) 内存容量(RAM):256M或更高
2.4.2软件环境
Web服务器端
(1) 操作系统:Android 2.3
(2) i-jetty
客户端
(1) 操作系统:Windows 98/2000/2003/XP
(2) Web浏览器:Internet Explorer 5.0以上或Netscape 4.0以上
开发工具:
(7)MyEclipse
(8)Dreamweaver
(9)Photoshop
2.5接口
硬件接口:
考虑到大量数据的备份等要求,需要保持Android手机与计算机网络连通。
2.6控制
由于本系统采用目前的主流技术,只需要以Windows 2000或NT以上核心操作系统来控制网页运行,至于其它则无特殊要求。
3.系统操作说明
图3 系统操作说明图
4.具体操作与演示
4.1设置Android手机便携式热点
图 4.1 设置便携式热点 4.2 PC端连接wifi
图 4.2 连接wifi 4.3 打开i-jetty
图 4.3 打开i-jetty。