还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
手机触摸式指压动漫制作工具软件概要设计说明书文档标示:HNU_DM_210当前版本:V
1.0当前状态:草稿发布日期2010/09/18发布√修改历史日期版本__修改内容评审号2010/09/
150.1毛伟新建文档2010/09/
150.1毛伟新增总体设计2010/09/
161.0毛伟修改手势识别1引言
1.1目的本文档说明了本系统对程序系统的设计考虑,包括程序系统的基本处理流程图、程序系统的组织结构、模块划分、功能分配和运行设计等本设计文档主要适用于本项目管理人员、设计人员、软件项目__人员、系统测试人员、软件升级维护人员等,以便提供更好的设计、__、测试和以后的维护升级
1.2读者对象管理人员、设计人员、__人员、测试人员、维护人员
1.3参考资料
1、《软件__文档规范》
2、《项目可行性研究报告》
1.4术语与缩写
1、Android Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统;
2、3G第三代__通信技术,是指支持高速数据传输的__通讯技术;
3、MID MobileInternetDevise,__互联设备;
4、Linux一类Unix计算机操作系统的统称;
5、RGB一种颜色标准,是通过对红R、绿G、蓝B三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色;
6、PC机个人计算机;
7、蓝牙一种支持设备短距离通信(一般10m内)的无线电技术;
8、动画帧指Flash影片中的动作代码
9、AIDL AndroidInte_____DefinitionLanguage即Android接口描述语言2Android概述Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的智能手机平台,由操作系统、中间件、用户界面和应用程序组
2.1Android平台的优点1)平台的开放性允许任何厂商加入,使其拥有更多的__者,新的应用还有创意可以不断的出现;2)摆脱了运营商的束缚,让手机更加贴近互联网;3)应用程序都是基于J__a__的,J__a具有一次编写、到处运行的跨平台性实现了能够在所有的Android设备中运行,真正做到了硬件无关性,降低了__者的负担;4)提供了标准的API和SDK__包,手机厂商可以根据需要自行__或者使用已有的程序,从而打造出富有特色的Android平台
2.2Android平台的特征应用框架用于__可重用、可替代的组件;Dalvik虚拟机Android采用的是自主__的Dalvik虚拟机,它具有很好的硬件兼容性,在保证API兼容的同时针对__手机进行了大幅优化,占用资源更小,运行效率更高;优化的图形Android提供了优化过的图形系统,该系统由一个自定义的2D图形库和一个遵循OpenGLES1.0标准硬件加速的3D图形库组成;SQLite数据库SQLite数据库是Android自带的一个标准的数据库,支持SQL语句,是一个轻量级的嵌入式数据库媒体功能支持各种通用的音视频和静态图像格式网络支持功能支持蓝牙、GPRS-EDGE、3G和WiFi无线网络硬件支持功能支持相机、GPS、导航和感应加速器等各类硬件强大的__环境包括设备模拟器,调试工具,内存和性能检测工具,以及EclipseIDE的__插件
2.3Android平台的体系架构Android不仅是一个操作系统,更是一个开源的体系架构Android软件平台从上到下主要由五个部分构成应用程序、应用程序框架、程序库、Android运行库以及Linux内核1应用程序Android的应用程序通常涉及用户界面和用户交互Android本身提供了桌面Home、__人Contact、__Phone和浏览器Browsers等众多的核心应用所有的核心应用都使用J__a语言编写,同时__者可以使用应用程序框架层的API实现自己的程序,这也是Android开源优势的体现2应用程序框架Android应用程序的__基于程序框架和组件,__人员拥有同核心应用程序一样的API访问权限应用程序后面是一系列的服务和系统,其中包括视图Views——构造应用程序的视图部分,包括列表Lists、文本框Textboxes、按钮Buttons等;内容提供器ContentProviders——提供一种实现数据互访和共享的机制;资源管理器Resour__s__nager——负责管理非代码的访问,如本地字符串、__资源及涉及布局的XML文件;通知管理器Notification__nager——用于将提示信息显示在状态栏上例如,当有__的时候,在状态栏上显示有新信息;活动管理器Activity__nager——用于管理应用程序的生命周期,并提供应用页面退出的机制通过这套应用框架,各种服务和组件可以被用户的应用重复利用3程序库Android本身还包含了一整套核心库,能被系统中不同的组件使用它们通过Android应用程序框架为__者提供服务核心库主要包括系统C库——从BSD继承来的标准C系统函数库,是专门为基于嵌入式Linux设备制定的;媒体库——该库支持多种常用的音频、视频格式的回放和录制,同时支持静态图像文件,编码格式包括MPEG
4、H.
264、MP
3、AAC、AMR、JPG、PNG;Su_______nager--用于管理显示子系统,并为多个应用程序提供2D和3D图形层的无缝融合;LibWebCore---Web浏览器引擎,支持Android浏览器和一个可嵌入的Web视图;SGL——底层的2D图形引擎3Dlibraries——基于OpenGLES
1.0API实现,该库可以使用硬件3D加速,或者高度优化的3D软加速;FreeType——位图和矢量字体显示;SQLite——轻量级的关系型数据库4android运行库RunTime所有的Android应用程序都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例Dalvik虚拟机是Google自主研发的,它被设计成一个设备,可以同时高效地运行多个虚拟系统Dalvik在保证API方面兼容的同时,针对移动手机进行了优化,占用更小的资源,提高了运行效率Dalvik虚拟机依赖于底层linux内核提供的功能,如线程机制和内存管理机制5linux内核Android基于Linux2.6内核来提供系统的核心服务,如安全性,内存管理,进程管理,网络协议栈和驱动模型Linux内核也同时作为硬件和软件栈之间的抽象层从总体架构中看,Android平台显示出了自身的特点,如集成了WebKit浏览器、Dalvik虚拟机等模块这些模块的应用也成为了Android__的焦点,开发者可以利用Android提供的模块接口,__出具有特色的应用程序
2.4Android应用程序构成对于一个Android应用程序来说,一般由以下四种组件构造而成:1ActivityActivity是最基本的Android应用程序组件在应用程序中,一个Activity通常就是一个单独的屏幕每一个Activity都被实现为一个__的类,并继承基类Activity2BroadcastIntentRe__iver当需要对一个外部__如当__呼入做出响应时,可以使用目的___IntentRe__iver目的___并不显示UI界面,当外部__发生时,使用Notification__nager通知用户3Servi__Servi__是具有长生命周期且没有用户界面的一段程序,它需要通过某一个Activity或者Context对象来调用Servi__的生命周期方法比Activity少一些,只有onCreate、onStart和onDestory有两种方式用来启动Servi__,它们的不同之处在于对Servi__生命周期的影响不一样4ContentProvider一个应用程序可以将它的数据保存到文件、SQL数据库,甚至是任何有效的存储设备中当需要将应用数据与其它的应用共享时,使用ContentProvider来完成ContentProvider类实现了一组标准的方法,从而能够让其它的应用保存或读取此ContentProvider处理的各种数据类型在Android项目里有一个XML配置文件Android__infest.xml,用于定义应用程序中用到的组件、组件的功能及必要条件但并不是每一个Android应用程序都需要包含这四部分这四种构造块之间的关系如图
2.1所示图
2.1Android应用的构成和工作流程图3总体设计
3.1运行环境支持androidsdk
2.0的手机或者MID
3.2系统总体框架AcitivitiesUI与后台服务的通信通道单例UI显示层Dispatch调度层ServicesAILD接口定义ContentProvidersReceiversOpenServicesOpenContentProviders通知系统事件实现对外接口读/写数据应用服务层通信通信以平台性提供对外服务服务管理模块服务绑定模块消息转发模块框架核心异常通知模块图3-2-1系统总体框架由图3-2-1可看出,系统主要分为三层UI层(Activities层),调度层(Dispatch层)和应用服务层(Servi__s层)三层结构的职责归属与交互方式如下层次组成职责与其他层次交互模式UI层Activities,Views负责应用程序UI显示负责进行跳转与调度层进行交互负责控制调度层对服务进行管理只能与调度层进行交互,不可见服务层调度层服务管理模块服务绑定模块消息转发模块异常通知模块负责与后台服务的绑定与通信负责处理UI层的请求负责管理服务层相关服务负责管理应用程序的异常输出与UI层通过本地接口进行交互与应用服务层通过接口AIDL进行通信应用服务层Servi__Re__iverContentProvider负责与系统进行通信负责监控系统行为并处理负责与调度层进行消息通信与调度层通过远程接口AIDL进行通信,返回计算结果/__等
3.3功能结构图#0;服务层图形处理动画合成动作捕捉、识别作品发送调度层服务管理服务绑定消息转发异常通知动漫预览UI层动漫发送图形绘制图层管理手势识别图3-3-1系统功能结构图
3.4总体数据流程图#0;触摸式素材编辑手势识别素材编辑素材动画合成作品分享作品作品作品信息图3-3-1总体数据流程图
3.5系统技术创新点平台采用视频装置捕捉手势(运用手势识别技术),用户只需在镜头下动动手势,便可在各种Android__终端上实现动漫制作打破了西方国家对我国的技术封锁,创立我们自己特色的“第六感”技术成果,将手势识别技术运用到小型的手持设备上,具有划时代的意义;建立了新型人际交流的平台,使动漫创建团体不再局限于专业人士,还可通过彩信、蓝牙实时与好友__自己特制的新鲜出炉的DIY作品,带给用户更人性化,智能化的技术新体验;使用免费Android操作系统,节约了近三成制作成本,改进内存存储算法后,进一步节约成本,系统效率变高
3.6系统功能手机触摸式指压动漫制作工具软件让用户可以直接在手机上制作__动漫作品主要功能包括图形编辑绘制、手势识别工具调用、手势识别绘画、动画合成、作品__等#0;预览作品分享手势识别动漫制作素材编辑拖曳变形旋转特效绘图工具编辑面板文字面板颜料面板绘图功能绘画图层背景图层动画合成合成图层图层拍照图3-6-1主要功能结构图
4.功能模块设计
4.1拍照
4.
1.1功能说明拍摄一张照片作为编辑素材无
4.
1.3数据结构图像信息图像大小、图像名、保存路径
4.2绘图功能
4.
2.1功能说明提供图形绘制功能,包括画笔、橡皮擦、矩形、文字等图形处理绘图功能包括绘图工具面板、涂鸦画板、颜色面板等功能1)绘图工具面板包括直线、曲线、方形、圆形、多边形、橡皮、剪切、__、旋转、缩小、放大、渲染等2)颜色面板颜色板、色板格、颜色值R、G、B等
4.
2.2模块流程#0;#0;#0;开始选择绘图工具绘图操作是否编辑绘图操作完成保存结束是否图4-2-1绘图流程
4.
2.3数据结构1颜色信息颜色值2图形文件信息文件名、文件类型等3图形信息图形大小、背景颜色4画线工具信息线类型、线粗细、颜色信息
4.3图层图层就像透明的薄片一样在画板上一层层地向上叠加,在图层上绘制和编辑对象,不会影响其它图层上的对象本项目采用了三个图层结构,分别是绘画图层、背景图层、合成图层绘画图层绘制图形,背景图层显示背景,合成图层是绘画图层和背景图层的叠加#0;#0;开始选择背景绘图结束合成保存图4-3-1图层绘图流程图层信息图层元素、图层类型图层元素素材元素图层类型绘画图层、背景图层、合成图层
4.4动画合成动画合成是系统的主要功能,用户编辑一个动画序列的关键素材,定义播放的间隔时间形成动画#0;#0;#0;开始逐帧绘图保存修改?合成gif动画结束设置播放间隔时间是否播放图4-4-1动画合成流程帧信息帧元素、帧位置帧元素素材元素运动信息动画播放间隔时间
4.5手势识别在传统的手势识别技术中,是将捕获的图像由YUV格式转化为RGB格式,然后对转化后的__进行扫描而实际上,在转化过程中进行扫描是一个更加快速有效的方法假设__像素为160*240,那么在最坏的条件下(用__算法)CPU可以少执行38400次搜索另一个提高效率的方法是在扫描过程中没有必要对整个__完成转化,只要将转化后的颜色标记的像素点数量进行一个统计,设定数量的最低取值,当数量达到一定数目的时候结束扫描,然后再将统计的像素点的坐标求平均值,便可以大致得到标记中心坐标同样假设__像素为160*240,标记中心在每个像素点出现的概率相同,那么效率又将在原来的基础上提高约50%,这样就可以使CPU在计算的峰值阶段保证整个程序的正常运行,不会因为摄像头的打开而消耗大量内存空间而引发内存不足的问题采用三个颜色标签(红绿蓝)进行控制,其中红与绿色表示绘画,蓝色表示调用工具当需要绘画时,首先要以红色标签来定点,摄像头连续拍摄,后台程序不断对拍摄到的__进行扫描,识别到红色标签后将会在屏幕上以一个实心圆点来表示标签的坐标,当用户将定点移至自己满意的位置后,用绿色标签来进行定位定点成功后开始当前绘图,就可以用红色标签来进行绘画,后台程序扫描到的坐标连续的传输至前台,从而可以展示流畅的绘图过程当再次出现绿色标签时,当前绘图结束图4-5-1实际的红绿标签与像机扫描所得到的识别__图4-5-2实际的蓝色标签与其对应的扫描图利用蓝色标签的上下左右四个方向进行__,模拟键盘的四个方向键,其中左至右调用工具栏,右至左调用颜料盒,进入相应的界面后,再次使用蓝色标签的__,判断__的方向进行工具或者颜料的选择当用户对当前工具或颜色满意时,可以用绿色标签进行确定,工具栏或颜料盒将会切换回到主界面,绘画笔也将响应选取的功能图4-5-3蓝色标签向右__调出工具栏#0;#0;#0;开始视频捕捉蓝?选择工具定点根据手势绘图继续编辑绘图完成保存结束是是否否图4-5-4手势识别模块流程捕获图像信息像素点、颜色值、像素点坐标值
4.6作品__通过彩信或蓝牙把作品和别人__无作品信息作品名称、大小、位置5异常处理设计
5.1设计思想与方法异常错误发生时,提供统一的异常处理类,捕获所有的异常,包括堆栈异常、数据读写异常、错误操作异常等
5.2错误处理规定异常处理类从error类继承,所有有异常的地发都需要用try..catch..finally语句来对错误进行捕获和处理Try是执行可能有错误抛出的操作,catch捕获任何一个错误响应,finally执行另外的操作来处理失败的操作6运行设计直接在手机功能面板里运行”手势识别动漫”7维护设计维护主要是从简单、易懂方面考虑的,对每一个操作都有使用说明,出现异常情况的解决办法,也可以直接__技术维护人员8设计与规范
8.1设计工具采用MicrosoftViso
2003、Powerdesign、Microsoftoffi__2003作为设计工具
8.2设计规范
8.
2.1可靠行由于人的失误和认知的局限无法避免,会导致正常调度失败,因此根据人的失误倾向,设置各种支持系统,以容许或自动纠正这类错误,同时以适当方式给使用者提供信息,使他们明了自己所面临的情况;或提供互锁、自动控制、操作员支持系统和误操作防止结构当调度失败后,相关人员详细了解非常规的运作情况,包括系统崩溃、软件故障、任何影响用户业务操作和系统正常运作的事情、以及影响业务流程或违背服务水平协议的情况,查看日志,以保证能够快速准确的处理数据系统故障不会产生丢失资源的问题系统运行速度必须达到用户能容忍的限度,尽量不要有太多的延迟
8.
2.2可维护性1)在软件__期间设置检查点,以确保交付使用前的最后一次检查2)周期性地维护审查软件在运行期间,为了纠正新发现的错误或缺陷,为了适应计算环境的变化,为了响应用户新的需求,必须进行修改因此,必须对软件做周期性的维护审查,以跟踪软件质量的变化周期性维护审查实际上是__阶段检查点复查的继续、并且采用的检查方法、检查内容都是相同的3)选择可维护的程序设计语言程序设计语言的选择,对程序的可维护性影响很大4)改进程序的文档程序文档是对程序总目标,程序各组成部分之间的关系,程序设计策略,程序实现过程的历史数据等的说明和补充程序文档对提高程序的可理解性有着重要作用在软件维护阶段,利用历史文档,可以大大简化维护工作历史文档有三种系统__日志,错误记载,系统维护日志
8.3编程工具MyEclipse、Dreamw__er
8.4编程规范1)缩写尽量避免使用缩写,使用缩写时尽量和Android保持一致2)文件名res资源文件小写,如background.pngJ__a大写字母开头,各个单词首字母大写3)类名各个单词首字母大写4)包小写字母开头,后面各个单词都小写并加上”.”号5变量名全局变量以类型缩写开头,并使用有意义的名称,如intCountnumCount临时变量通常使用一个通用字母,如Ijk6方法命名小写字母开始,每个单词大写字母间隔7)声明每一个声明,分号结束,变量的声明放在开始位置,循环内部变量除外8)行、换行、缩进、空格每行不要超过110个字符,即不要超过可视化部分,在逗号后面,运算符之前,较高级别代码处换行,在后面的行缩进二个制表符,同一父组件之间的子组件之间插入空白行,下一级组件与上一级组件缩进一个制表符,函数之间插入空白行,局部变量和声明之间换行,方法的形参逗号后面加空格,操作数之间插入空格,方法名与括号之间不插空格9)注释尽量为每个变量、类、函数、参数等编写注释,一般每个文档前面都需要写注释,内容包括主要功能,__,日期等等,如果这个函数所在的文档有注释的话,则公用部分可以不写注释,当然并不是每个函数都需要这么写注释,根据具体情况而定ContentProviderIntentContentProvider进行数据存储通过Intent实现活动之间的转换存储设备ActivityActivityIntentRe__iver通过Binder对Servi__进行绑定通过IntentRe__iver对外部__进行响应BinderServi__外部__。