




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
手机触摸式指压动漫制作工具软件概要设计说明书文档标示:HNU_DM_210当前版本:V1.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:Mobile Internet Devise,移动互联设备;4、Linux:一类Unix计算机操作系统的统称;5、RGB:一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色;6、PC机:个人计算机;7、蓝牙:一种支持设备短距离通信(一般10m内)的无线电技术;8、动画帧:指Flash影片中的动作代码。9、AIDL:Android Interface Definition Language,即Android接口描述语言。2 Android概述Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的智能手机平台,由操作系统、中间件、用户界面和应用程序组。2.1 Android平台的优点1)平台的开放性允许任何厂商加入,使其拥有更多的开发者,新的应用还有创意可以不断的出现;2)摆脱了运营商的束缚,让手机更加贴近互联网;3)应用程序都是基于Java开发的,Java具有一次编写、到处运行的跨平台性。实现了能够在所有的Android设备中运行,真正做到了硬件无关性,降低了开发者的负担;4)提供了标准的API和SDK开发包,手机厂商可以根据需要自行开发或者使用已有的程序,从而打造出富有特色的Android平台。2.2 Android平台的特征应用框架:用于开发可重用、可替代的组件;Dalvik虚拟机:Android采用的是自主开发的Dalvik虚拟机,它具有很好的硬件兼容性,在保证API兼容的同时针对移动手机进行了大幅优化,占用资源更小,运行效率更高;优化的图形:Android提供了优化过的图形系统, 该系统由一个自定义的2D图形库和一个遵循OpenGL ES 10标准(硬件加速)的3D图形库组成;SQLite数据库:SQLite数据库是Android自带的一个标准的数据库,支持SQL语句,是一个轻量级的嵌入式数据库。媒体功能:支持各种通用的音视频和静态图像格式。网络支持功能:支持蓝牙、GPRS-EDGE、3G和WiFi无线网络。硬件支持功能:支持相机、GPS、导航和感应加速器等各类硬件。强大的开发环境:包括设备模拟器,调试工具,内存和性能检测工具,以及Eclipse IDE的开发插件。2.3 Android平台的体系架构Android不仅是一个操作系统,更是一个开源的体系架构。Android软件平台从上到下主要由五个部分构成:应用程序、应用程序框架、程序库、Android运行库以及Linux内核。1)应用程序Android的应用程序通常涉及用户界面和用户交互。Android本身提供了桌面(Home)、联系人(Contact)、电话(Phone)和浏览器(Browsers)等众多的核心应用。所有的核心应用都使用Java语言编写,同时开发者可以使用应用程序框架层的API实现自己的程序,这也是Android开源优势的体现。2)应用程序框架Android应用程序的开发基于程序框架和组件,开发人员拥有同核心应用程序一样的API访问权限。应用程序后面是一系列的服务和系统,其中包括:视图(Views)构造应用程序的视图部分,包括列表(Lists)、文本框(Textboxes)、按钮(Buttons)等;内容提供器(Content Providers)提供一种实现数据互访和共享的机制;资源管理器(Resources Manager)负责管理非代码的访问,如本地字符串、图片资源及涉及布局的XML文件;通知管理器(Notification Manager)用于将提示信息显示在状态栏上。例如,当有短信的时候,在状态栏上显示有新信息;活动管理器(Activity Manager)用于管理应用程序的生命周期,并提供应用页面退出的机制。通过这套应用框架,各种服务和组件可以被用户的应用重复利用。3) 程序库Android本身还包含了一整套核心库,能被系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。核心库主要包括:系统C库从BSD继承来的标准C系统函数库,是专门为基于嵌入式Linux设备制定的;媒体库该库支持多种常用的音频、视频格式的回放和录制,同时支持静态图像文件,编码格式包括MPEG4、H264、MP3、AAC、AMR、JPG、PNG;Surface Manager-用于管理显示子系统,并为多个应用程序提供2D和3D图形层的无缝融合;LibWebCore-Web浏览器引擎,支持Android浏览器和一个可嵌入的Web视图;SGL底层的2D图形引擎。3D libraries基于OpenGL ES 1.0 API实现,该库可以使用硬件3D加速,或者高度优化的3D软加速;FreeType位图和矢量字体显示;SQLite轻量级的关系型数据库。4) android运行库(RunTime)所有的Android应用程序都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例。Dalvik虚拟机是Google自主研发的,它被设计成一个设备,可以同时高效地运行多个虚拟系统。Dalvik在保证API方面兼容的同时,针对移动手机进行了优化,占用更小的资源,提高了运行效率。Dalvik虚拟机依赖于底层linux内核提供的功能,如线程机制和内存管理机制。5) linux内核Android基于Linux26内核来提供系统的核心服务,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。从总体架构中看,Android平台显示出了自身的特点,如集成了WebKit浏览器、Dalvik虚拟机等模块。这些模块的应用也成为了Android开发的焦点,开发者可以利用Android提供的模块接口,开发出具有特色的应用程序。2.4 Android应用程序构成对于一个Android应用程序来说,一般由以下四种组件构造而成:1) ActivityActivity是最基本的Android应用程序组件。在应用程序中,一个Activity通常就是一个单独的屏幕。每一个Activity都被实现为一个独立的类,并继承基类Activity。2) Broadcast Intent Receiver当需要对一个外部事件(如当电话呼入)做出响应时,可以使用目的接收器(Intent Receiver)。目的接收器并不显示UI界面,当外部事件发生时,使用Notification Manager通知用户。3) ServiceService是具有长生命周期且没有用户界面的一段程序,它需要通过某一个Activity或者Context对象来调用。Service的生命周期方法比Activity少一些,只有onCreate、onStart和onDestory。有两种方式用来启动Service,它们的不同之处在于对Service生命周期的影响不一样。4) Content Provider一个应用程序可以将它的数据保存到文件、SQL数据库,甚至是任何有效的存储设备中。当需要将应用数据与其它的应用共享时,使用Content Provider来完成。Content Provider类实现了一组标准的方法,从而能够让其它的应用保存或读取此Content Provider处理的各种数据类型。在Android项目里有一个XML配置文件AndroidMainfestxml,用于定义应用程序中用到的组件、组件的功能及必要条件。但并不是每一个Android应用程序都需要包含这四部分。这四种构造块之间的关系如图2.1所示:ContentProviderIntentContentProvider进行数据存储通过Intent实现活动之间的转换存储设备ActivityActivityIntent Receiver通过 Binder对 Service进行绑定通过 Intent Receiver对外 部事件进行响应 BinderService外部事件图2.1 Android应用的构成和工作流程图3 总体设计3.1 运行环境支持android sdk2.0的手机或者MID。3.2 系统总体框架图3-2-1系统总体框架由图3-2-1可看出,系统主要分为三层:UI层(Activities层),调度层(Dispatch层)和应用服务层(Services层)。三层结构的职责归属与交互方式如下:层次组成职责与其他层次交互模式UI层Activities,Views负责应用程序UI显示负责进行跳转与调度层进行交互负责控制调度层对服务进行管理只能与调度层进行交互,不可见服务层。调度层服务管理模块服务绑定模块消息转发模块异常通知模块负责与后台服务的绑定与通信负责处理UI层的请求负责管理服务层相关服务负责管理应用程序的异常输出。与UI层通过本地接口进行交互。与应用服务层通过接口AIDL进行通信。应用服务层ServiceReceiverContentProvider负责与系统进行通信负责监控系统行为并处理负责与调度层进行消息通信与调度层通过远程接口AIDL进行通信,返回计算结果/事件等。3.3 功能结构图图3-3-1系统功能结构图3.4 总体数据流程图图3-3-1总体数据流程图3.5 系统技术创新点平台采用视频装置捕捉手势(运用手势识别技术),用户只需在镜头下动动手势,便可在各种Android移动终端上实现动漫制作。打破了西方国家对我国的技术封锁,创立我们自己特色的“第六感”技术成果,将手势识别技术运用到小型的手持设备上,具有划时代的意义;建立了新型人际交流的平台,使动漫创建团体不再局限于专业人士,还可通过彩信、蓝牙实时与好友分享自己特制的新鲜出炉的DIY作品,带给用户更人性化,智能化的技术新体验;使用免费Android操作系统,节约了近三成制作成本,改进内存存储算法后,进一步节约成本,系统效率变高。3.6 系统功能3.6.1 功能说明手机触摸式指压动漫制作工具软件让用户可以直接在手机上制作分享动漫作品。主要功能包括图形编辑绘制、手势识别工具调用、手势识别绘画、动画合成、作品分享等。3.6.2 主要功能结构图图3-6-1主要功能结构图4. 功能模块设计4.1 拍照4.1.1 功能说明拍摄一张照片作为编辑素材4.1.2 模块流程无4.1.3 数据结构图像信息:图像大小、图像名、保存路径4.2 绘图功能4.2.1 功能说明提供图形绘制功能,包括画笔、橡皮擦、矩形、文字等图形处理。绘图功能包括绘图工具面板、涂鸦画板、颜色面板等功能。1)绘图工具面板:包括直线、曲线、方形、圆形、多边形、橡皮、剪切、移动、旋转、缩小、放大、渲染等2)颜色面板:颜色板、色板格、颜色值(R、G、B)等4.2.2 模块流程图4-2-1 绘图流程4.2.3 数据结构1)颜色信息:颜色值2)图形文件信息:文件名、文件类型等3)图形信息:图形大小、背景颜色4)画线工具信息:线类型、线粗细、颜色信息4.3 图层4.3.1 功能说明图层就像透明的薄片一样,在画板上一层层地向上叠加,在图层上绘制和编辑对象,不会影响其它图层上的对象。本项目采用了三个图层结构,分别是绘画图层、背景图层、合成图层。绘画图层绘制图形,背景图层显示背景,合成图层是绘画图层和背景图层的叠加。4.3.2 模块流程图4-3-1 图层绘图流程4.3.3 数据结构 图层信息:图层元素、图层类型 图层元素:素材元素 图层类型:绘画图层、背景图层、合成图层4.4 动画合成4.4.1 功能说明 动画合成是系统的主要功能,用户编辑一个动画序列的关键素材,定义播放的间隔时间形成动画。4.4.2 模块流程图4-4-1 动画合成流程4.4.3 数据结构帧信息:帧元素、帧位置帧元素:素材元素运动信息:动画播放间隔时间4.5 手势识别4.5.1 功能介绍在传统的手势识别技术中,是将捕获的图像由YUV格式转化为RGB格式,然后对转化后的图片进行扫描。而实际上,在转化过程中进行扫描是一个更加快速有效的方法。假设图片像素为160*240,那么在最坏的条件下(用暴力算法)CPU可以少执行38400次搜索。另一个提高效率的方法是在扫描过程中没有必要对整个图片完成转化,只要将转化后的颜色标记的像素点数量进行一个统计,设定数量的最低取值,当数量达到一定数目的时候结束扫描,然后再将统计的像素点的坐标求平均值,便可以大致得到标记中心坐标。同样假设图片像素为160*240,标记中心在每个像素点出现的概率相同,那么效率又将在原来的基础上提高约50%,这样就可以使CPU在计算的峰值阶段保证整个程序的正常运行,不会因为摄像头的打开而消耗大量内存空间而引发内存不足的问题。采用三个颜色标签(红绿蓝)进行控制,其中红与绿色表示绘画,蓝色表示调用工具。当需要绘画时,首先要以红色标签来定点,摄像头连续拍摄,后台程序不断对拍摄到的图片进行扫描,识别到红色标签后将会在屏幕上以一个实心圆点来表示标签的坐标,当用户将定点移至自己满意的位置后,用绿色标签来进行定位。定点成功后开始当前绘图,就可以用红色标签来进行绘画,后台程序扫描到的坐标连续的传输至前台,从而可以展示流畅的绘图过程。当再次出现绿色标签时,当前绘图结束。 图4-5-1实际的红绿标签与像机扫描所得到的识别图片 图4-5-2 实际的蓝色标签与其对应的扫描图利用蓝色标签的上下左右四个方向进行移动,模拟键盘的四个方向键,其中左至右调用工具栏,右至左调用颜料盒,进入相应的界面后,再次使用蓝色标签的移动,判断移动的方向进行工具或者颜料的选择。当用户对当前工具或颜色满意时,可以用绿色标签进行确定,工具栏或颜料盒将会切换回到主界面,绘画笔也将响应选取的功能。图4-5-3 蓝色标签向右移动调出工具栏4.5.2 模块流程图4-5-4 手势识别模块流程4.5.3 数据结构捕获图像信息:像素点、颜色值、像素点坐标值4.6 作品分享4.6.1 功能介绍 通过彩信或蓝牙把作品和别人分享。4.6.2 模块流程 无4.6.3 数据结构作品信息:作品名称、大小、位置5 异常处理设计5.1 设计思想与方法异常错误发生时,提供统一的异常处理类,捕获所有的异常,包括堆栈异常、数据读写异常、错误操作异常等。5.2 错误处理规定异常处理类从error类继承,所有有异常的地发都需要用try.catch.finally语句来对错误进行捕获和处理。Try是执行可能有错误抛出的操作,catch捕获任何一个错误响应,finally执行另外的操作来处理失败的操作。6 运行设计直接在手机功能面板里运行”手势识别动漫”。7 维护设计维护主要是从简单、易懂方面考虑的,对每一个操作都有使用说明,出现异常情况的解决办法,也可以直接咨询技术维护人员。8 设计与规范8.1 设计工具采用Microsoft Viso 2003、Powerdesign、Microsoft office2003作为设计工具。8.2 设计规范8.2.1 可靠行由于人的失误和认知的局限无法避免,会导致正常调度失败,因此根据人的失误倾向,设置各种支持系统,以容许或自动纠正这类错误,同时以适当方式给使用者提供信息,使他们明了自己所面临的情况;或提供互锁、自动控制、操作员支持系统和误操作防止结构。当调度失败后,相关人员详细了解非常规的运作情况,包括系统崩溃、软件故障、任何影响用户业务操作和系统正常运作的事情、以及影响业务流程或违背服务水平协议的情况,查看日志,以保证能够快速准确的处理数据l 系统故障不会产生丢失资源的问题。l 系统运行速度必须达到用户能容忍的限度,尽量不要有太多的延迟。8.2.2 可维护性1)在软件开发期间设置检查点,以确保交付使用前的最后一次检查。2)周期性地维护审查。软件在运行期间,为了纠正新发现的错误或缺陷,为了适应计算环境的变化,为了响应用户新的需求,必须进行修改。因此,必须对软件做周期性的维护审查,以跟踪软件质量的变化。周期性维护审查实际
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购物中心公共区域保洁服务合同
- 职业教育校企合作信息管理平台
- 书香满屋生活更有味
- 烤面包机维修预案思路
- 2025中国工商银行山西省分行社会招聘120人笔试含答案
- 卡通动漫绘画风格规定
- 2025浙江宁波江北区劳动和社会保障事务代理服务有限公司招聘编外工作人员笔试历年参考题库附带答案详解
- 企业财务造假审计
- 2025锡林郭勒西乌珠穆沁旗招聘基层医疗卫生机构专业技术人员笔试模拟试题及答案解析
- 企业完善员工工作环境
- 人教版九年级英语全一册 Unit 13 《We are trying to save the earth!》教学设计
- 全套电子课件:极限配合与技术测量(第五版)
- 结构力学课件
- 人民检察院刑事诉讼法律文书格式样本2022
- (高清版)DZT 0216-2020 煤层气储量估算规范
- 人教版四年级上册语文第一单元测试题(含答案)
- 储能电站项目建设流程详解
- 供应商尽职调查模板
- 饮用水配送方案
- 妊娠滋养细胞肿瘤护理查房课件
- 磁粉检测课件
评论
0/150
提交评论