基于Android图形的三维控件技术研究与实现.docx

上传人:b****0 文档编号:17710637 上传时间:2023-08-03 格式:DOCX 页数:67 大小:1.17MB
下载 相关 举报
基于Android图形的三维控件技术研究与实现.docx_第1页
第1页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第2页
第2页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第3页
第3页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第4页
第4页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第5页
第5页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第6页
第6页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第7页
第7页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第8页
第8页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第9页
第9页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第10页
第10页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第11页
第11页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第12页
第12页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第13页
第13页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第14页
第14页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第15页
第15页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第16页
第16页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第17页
第17页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第18页
第18页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第19页
第19页 / 共67页
基于Android图形的三维控件技术研究与实现.docx_第20页
第20页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android图形的三维控件技术研究与实现.docx

《基于Android图形的三维控件技术研究与实现.docx》由会员分享,可在线阅读,更多相关《基于Android图形的三维控件技术研究与实现.docx(67页珍藏版)》请在冰点文库上搜索。

基于Android图形的三维控件技术研究与实现.docx

基于Android图形的三维控件技术研究与实现

分类号学号M201172665

学校代码10487密级

 

硕士学位论文

基于Android图形的三维控件技术研究与实现

 

AThesisSubmittedinPartialFulfillmentoftheRequirements

fortheDegreeofMasterofEngineering

 

TransplantationandExtensionTechnologiesforWebKit-basedEmbeddedBrowser

 

Candidate:

GuoFeng

Major:

ComputerTechnology

Supervisor:

Prof.YangFuMin

 

HuazhongUniversityofScienceandTechnology

Guofeng,Hubei430074,P.R.China

January,2013

独创性声明

本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。

尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。

对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到,本声明的法律结果由本人承担。

学位论文作者签名:

 日期:

年月日

 

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:

学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

本论文属于

保密□,在_____年解密后适用本授权书。

不保密□。

(请在以上方框内打“√”)

 学位论文作者签名:

            指导教师签名:

日期:

年月日          日期:

年月日

摘要

嵌入式设备与网络通讯的紧密结合,使得嵌入式浏览器在嵌入式设备中发挥着举足轻重的作用。

由于嵌入式平台具有需求多样性、硬件资源有限等特点,嵌入式浏览器需要具有良好的移植性、可扩展性、占用内存少等特点。

在研究了嵌入式浏览器的发展现状和相关技术的基础上,设计实现了一款功能丰富的嵌入式浏览器,并拓宽了浏览器在嵌入式设备中的应用领域。

首先,结合嵌入式终端需求和目前市场上的浏览器引擎的特性,选用了渲染速度快、占用内存少的轻量级开源浏览器引擎WebKit。

根据终端的软硬件环境提供WebKit平台适配层,实现WebKit引擎在嵌入式图形平台Clutter图形库下的移植,提供Clutter下的网页浏览组件和一组应用程序编程接口,分析了外部输入事件和系统事件结构与WebKit内核事件的转换与传递,并实现了一个简易的浏览器图形界面,支持多标签页浏览。

其次,提供了嵌入式浏览器的一些辅助功能扩展的实现。

网址过滤采用黑白名单控制方式实现;广告智能屏蔽扩展能够阻拦独立广告网址,并采用元素隐藏方式屏蔽网页内部广告,还可以通过用户反馈方式分析广告内容完善屏蔽功能;采用D-Bus消息机制实现了浏览器行为控制方式,包括消息对象接口和广播信号的发射,用以控制嵌入式浏览器行为和主动汇报浏览器执行结果。

然后,实现了嵌入式浏览器自定义标记扩充功能,构造嵌入式终端上的基于嵌入式浏览器的应用快速开发平台。

利用嵌入式浏览器的文档解析、布局排版功能,实现自定义Clutter标记与图形控件的绑定,并扩展自定义标记对应的JavaScript对象。

嵌入式浏览器不仅能够提供网页浏览基本功能,实施一些辅助功能扩展,而且可作为嵌入式终端上的核心基础软件实现一种应用程序快速开发技术。

终端业务体系可以采用Web开发方式实现,并可通过JavaScript脚本实现动态交互,应用部署更方便、快速。

关键词:

浏览器引擎,嵌入式图形平台,功能扩展,自定义标记

Abstract

Thecloseintegrationofembeddeddevicesandnetworkcommunicationmakesembeddedbrowserplayapivotalroleinembeddeddevices.Embeddedbrowserneedstohavefeaturesofgoodportability,scalability,lessmemorysinceembeddeddeviceshavedemanddiversityandlimitationsofhardwareresources.

Thepaperbuildsonthebasisofdevelopmentstatusandrelativetechnologiesofembeddedbrowser,thenachievesanembeddedbrowserwithrichfullfunctions,andbroadsapplicationfieldsofbrowserinembeddedproducts.Firstly,WebKitisselectedasthebrowserengineontheanalysisofdemandsforembeddedterminalsandcharacteristicsofbrowserenginescurrentlyonthemarketbecauseithasafastrenderingspeed,isopensource,andtakesuplessmemory.Accordingtotheterminal'shardwareandsoftwareenvironments,thisprojectprovidesaplatformadaptationlayer,whichsuppliesaportofWebKittoClutterembeddedgraphicsplatform,toprovideawebbrowseractorforClutterandasetofapplicationprogramminginterfaces,andtoreachastructuralconversationofexternalinputeventstoWebKitevents,andalsorealizesasimplebrowsergraphicsinterface,whichsupportsmulti-tabbrowsing.Secondly,weimplementsomeauxiliaryfuctionalextensions.URLfilteringcomesintoeffectbythecontrolmodeofblack-and-whitelists.AdvertisingintelligentblockingcannotonlyblockindependentadUrls,butalsohideinternalembeddedadvertisementsinwebpagesbyelementshiding.Additionally,userscanfeedbackadvertisingtoimproveshieldingeffects.ThebrowserbehaviorcontrolmechanismdependentonD-Busmessage,consistingofmessageobjectinterfacesandbroadcastsignals,isusedtocontrolthebehaviorofembeddedbrowserandreporttheexecutionresultsorstatus.Finally,wearriveatcustomtagextensiontomakearapidapplicationdevelopmentplatformforbrowser-basedgraphicaluserinterfaceonembeddedterminals.Themoduletakesadvantagesoffunctionsofembeddedbrowser’sdocumentparsing,layoutandpaintingtoimplementbindingofcustomtagsandCluttergraphicscontrolsandexpandssomeJavaScriptobjectscorrespondingtocustomtags.

Onthewhole,theembeddedbrowserontonlyprovidesbasicwebpagebrowsingfunction,makessomeauxiliaryfunctionalextensions,butalsocarriesoutarapidapplicationdevelopmenttoolascoreinfrastructuresoftware.Theterminalapplicationsystemcanbedevelopedbyadoptingthewebways,anddynamicallyoperatedbyJavaScript.Applicationdeploymentismoreconvenientandrapid.

Keyword:

BrowserEngine,EmbeddedGraphicsPlatform,FuctionalExtension,CustomTag

1绪论

1.1课题背景与意义

从20世纪70年代初第一款微处理器的出现,嵌入式系统以应用为中心,实现了向其他行业的广泛渗透,它由最初完成单一任务发展成为集计算机、消费电子、网络通信、工业控制为一体的现代嵌入式集成系统。

进入21世纪,随着科技的进步,市场需求使得基于嵌入式系统开发的产品更加小型化、人性化,嵌入式产品的多样性给人们的生活带来了前所未有的变化。

随着人们生活节奏的加快,对娱乐、学习的要求越来越高,在众多的嵌入式产品中,消费类电子在人们的生活中占据非常重要的地位。

比如智能手机、数字电视、数码相机、平板电脑等,消费类电子市场的繁荣为嵌入式产品开创了广阔的发展空间。

其中以平板电脑和家庭智能多媒体为代表的嵌入式产品迅速抢占市场,其强大的功能和舒适的用户体验推动了嵌入式技术的发展。

但是,早期的嵌入式产品因资源限制,图形用户界面简单,导致用户体验欠佳。

伴随着技术的创新,硬件成本逐年下降,在字符界面和简单的图形用户界面已不能满足现实需求的前提下,自然人机交互界面的设计显得尤为紧迫。

由于人类对于三维空间的感知度要优于二维空间,所以在以人为本的设计理念下,开发基于三维场景的图形用户界面,实现场景中三维控件的人机交互将成为未来行业发展的新趋势。

面对新的挑战,当前,能否开发三维图形用户界面及控件已经成为嵌入式终端生产商家的一大竞争焦点。

苹果公司针对IOS系统提供了完善的三维图形界面开发,其流畅的控件设计、舒适的视觉效果,获得了用户青睐。

除此之外,google公司发布的Android操作系统不但支持3D图形算法标准OpenGLES,而且可以使用硬件加速来提升图形界面的渲染效率和速度。

由于Android操作系统是一个开源、免费的开发平台,拥有良好的可移植性,因此,基于Android图形界面的三维控件的研究与实现不仅具有技术的创新性,而且还有潜在的商业价值。

本文是针对武汉精伦电子股份有限公司研发的新一代云影音智能机(产品系列号:

H2S)三维图形控件设计进行的深入研究。

新一代精伦云影音智能机是基于Android平台开发,具有观看高清影视、欣赏音乐MV、点播网络电视、享受体感游戏、体验语音操作等功能,所有界面力求精美简约,呈现场景完美三维立体效果。

本课题所做工作主要是通过对jMonkey的移植构建Android平台上的三维场景,开发三维控件与用户交互,通过控件完成对云影音智能机各个功能的操作,从而实现操作窗口界面的三维立体化。

1.2国内外研究概况

1.2.1iOS、Windows、Android平台控件开发概况

在日趋激烈的嵌入式产品市场中,苹果、微软和google公司都推出了自己的嵌入式开发平台,依此研发的嵌入式产品在市场上占据着重要位置。

随着用户对三维立体体验需要的不断增加,各公司在加紧发布新版本的同时,也在技术上加以改进,力求产品的图形界面和控件效果更臻于完善。

但是,由于图形界面和控件的开发以用户体验为向导,并没有统一的行业标准,所以不同开发平台针对用户图形界面和控件的开发各有千秋。

1.iOS平台控件开发

iOS是苹果公司为手持设备开发的操作系统,最初被命名为iPhoneOS,在2010年6月WWDC大会上正式宣布改名为iOS,目前iOS支持的设备包括:

iPhone、iPadtouch、iPad以及AppleTV等。

iOS与Android和WindowsPhone不同之处在于,iOS不支持非苹果公司的硬件设备。

苹果公司以iOS操作系统为平台开发的iPhone系列智能手机受到大众喜爱,连续8次获得了J.D.Power消费者满意度大奖。

iOS的特色不仅在于它高效的资源管理和强大的模块支持,而且它还具有多种图形绘制子系统,能够确保基于iOS平台开发的图形用户界面和控件拥有较高的用户体验水平。

高质量图形用户界面和控件的开发是iPhone应用的一个重要组成部分。

iOS平台支持基于2D和3D图形系统的开发,其中Quartz2D实现了二维图形的绘制,三维图形的渲染则采用OpenGLES方法,而且iOS还提供了CoreAnimation高级动画合成技术来实现强大的动画功能。

以图形系统的分类为标准,iOS平台上的控件开发主要体现在以下几个方面:

(1)二维控件开发主要通过Quartz核心图像框架来实现。

Quartz支持基于路径画图、坐标的空间转换、抗混淆重载、梯度、图像、颜色等功能,虽然提供的API使用的是C语言,但它更易于绘图资源的保存和复制;

(2)三维模型的绘制在OpenGLES框架内实现。

iPhone图形界面内的2D和3D模型都可以通过OpenGLES来渲染。

OpenGLES与硬件设备紧密相关,能够为游戏或三维控件提供较高的绘制帧率,在iOS平台下可以使用OpenGLES框架内的EAGL接口来实现画图代码和本地对象的调用;

(3)Quartz核心框架还包含了CoreAnimation接口。

CoreAnimation提供了标准系统行为动画,开发者可以利用这个框架创建客户化的动画,从而实现复杂动画和虚拟效果。

2.Windows平台控件开发

Windows平台上针对嵌入式产品的操作系统主要是指WindowsCE,它是微软公司嵌入式移动平台的基础,具有出色的图形用户界面,在控制、通信、多媒体领域有广泛的应用。

作为嵌入式操作系统,WindowsCE本身具有强大的优势,比如具有通信能力强,模块化及可延展性好,支持多种CPU等功能,同时,WindowsCE具有Windows界面的风格,给用户一种十分亲切的感觉,微软深厚的技术支持,对windows家族特性的继承又是其它嵌入式系统无可替代的。

WindowsCE中的窗口、控件、对话框、菜单和资源都是由GWE子系统实现。

GWE是WindowsCE系统中重要的组成部分,主要包括图形、窗口管理和事件管理三个组件,完成了控件的绘制,事件响应等功能。

WindowsCE采用GDI接口实现应用程序和硬件设备之间的图形绘制操作,GDI是GWE的核心组件,同时它本身又支持很多与图形绘制有关的子集,比如DirectX、Mgblt、TrueType等。

DirectX是微软公司开发的用途非常广泛的API,是一整套多媒体接口方案,其中最突出的是它在三维图形绘制方面的应用。

WindowsCE操作系统使用的是DirectX的一个增强型子集Direct3D,Direct3D可以加载3D模型,支持多种3D特效,具有流畅的3D渲染特性。

目前在WindowsCE平台上的基于Direct3D的图形界面已经实现,比如DirectUI界面库,它不仅采用更加方便的图形界面和控件设计方案,而且CPU资源利用效率较高。

WindowsCE系统界面的基本元素是窗口,控件就是平台上提供的一些预定义窗口类,例如按钮、文本编辑框等。

可以通过调用CreateWindows或CreateWindowEx函数创建控件,每个控件都有对应的窗口消息处理函数,子控件的ID和句柄以参数的形式写入消息函数,通过它来通知父控件,完成事件的交互。

WindowsCE平台控件开发流程较为固定,控件与可利用的函数接口丰富,但是基于WindowsCE平台的嵌入式开发需要付费,所以它在企业级的中的应用比较广泛。

3.Android平台控件开发

Android操作系统是由谷歌推出的基于Linux内核的开源操作系统,目前广泛应用于智能手机和平板电脑等移动终端。

随着新兴嵌入式设备的崛起,Android操作系统开始显示强大的生命力,其开源性、可移植性和完善的应用程序架构使得基于Android操作系统平台的开发越来越受欢迎。

Android应用程序拥有良好的人机交互界面,简单的开发操作流程。

以图形界面开发为例,Android自带多种控件供开发人员使用,大大提高了开发效率以及减轻了开发难度,但是这些控件以二维图形控件为主,立体三维控件仅有Gallery可以勉强实现,其动画效果表现欠佳。

控件开发需要高质量的图形系统支持。

Android平台上的图形系统不仅有支持二维控件开发的Skia图形系统,而且对于OpenGLES支持也体现了Android在三维空间上的优势。

首先,在二维显示方面,Android没有使用GTK构建XWindows,也没有使用Cairo库提供向量绘图的方式,而是使用特有的向量图形函数处理库Skia。

Android自带二维控件主要是基于Skia底层图形库通过上层封装实现的,具体包括View和ViewGroup(继承View)两大基类及其继承产生的所有子类。

复杂控件是通过对简单控件的重新组合,通过覆写方法函数实现特定的属性和功能。

其次,在三维图形方面,Android也是采用基于嵌入式3D图形标准算法OpenGLES实现的,其中还包含了对设备的硬件加速支持。

根据Android应用程序框架规定,三维场景可以在GLSurfaceView上进行渲染,但是,三维图形渲染所用资源丰富,占用时间稍长于UI主线程,因此,需要使用java中的多线程机制实现3D图形的渲染,对于事件处理可以通过调用回调函数的方法实现线程间的通信。

三维控件的开发就是基于Android三维图形系统提供的一系列功能实现的。

最后,基于Android图形的三维控件技术的实现并非完全使用Android平台提供的3D图形系统。

作为三维控件开发的基础,Android平台的OpenGLES只提供简单的图形绘制、建模以及事件处理,对于复杂的三维控件的开发需要维护一整套能够处理复杂模型与事件的三维图形引擎。

综上所述,三种平台都具有良好的图形系统作为控件开发的基础,开发的控件各有特色,设计方法大同小异,最终都带给用户舒适的体验。

本课题主要针对Android平台上的控件开发,使用三维图形引擎创建场景。

1.2.2Android系统三维图形引擎的发展概况

Android系统上的三维图形引擎的发展主要依靠Android平台强大的可移植特性。

随着Android应用的不断扩张,Android操作系统对三维图形的支持仅局限于OpenGLES提供的简单功能已经远远不能满足开发的需要,于此同时,基于其他平台开发的三维图形引擎的发展非常完善,而Android操作系统具有很强的可移植性,因此,目前有多款3D图形引擎已经成功的移植到Android平台,比较出色的三维图形引擎包括jMonkey、JPCT-AE、Irrlicht、Alien3D以及OGRE3D,在图形渲染效率和资源利用上它们都有自己的优点与不足。

1.jMonkey

jMonkey是一款专门为3D游戏开发的免费开源图形引擎,使用java语言实现,目前最高版本是jMonkeyEngine3.0。

MarkPowell在2003年通过研究OpenGL渲染时创作了JME(jMonkey的缩写),之后JME成为Sun公司J的组成部分,许多开发爱好者纷纷加入,逐渐扩大JME的性能、增添高级特性,最终使之成为一个稳定的游戏开发平台。

目前,jMonkey已成功移植到Android平台,支持AndroidSDK2.2或者以上版本开发环境,开发工具可以选择Eclipse。

jMonkey在Android平台上的表现相对于其他三维引擎较完善,对shader、灯光、物理粒子系统、地形、纹理、资源管理等的支持决定了JME在Android平台上的特殊地位,当然其中的某些特性并未完全实现,开发者可以根据自己情况在源码中进行添加。

从Android源码可以看出,Android4.1.1已经在external目录下支持jMonkey的开发。

本课题就是基于jMonkey三维图形引擎开发的Android系统三维控件。

2.JPCT-AE

JPCT是基于OpenGL开发的3D图形引擎,目前有PC和Android两个版本,JPCT-AE是JPCT在Android平台上的移植版本,也是由Java语言编写,最低运行环境为AndroidSDK1.5。

JPCT-AE的优点是具有很强的兼容性,体积小,专门针对Android开发,不足主要体现在运行效率有待考虑,但是由于使用Java语言开发,在Android平台使用非常方便。

3.Irrlicht

Irrlicht就是著名的“鬼火”引擎。

Irrlicht使用C++语言开发,是一款具有高效渲染特性的实时三维图形引擎,它具有很强的跨平台特性,可运行于Linux、Windows和MacOS之上。

Irrlicht由著名游戏专家NikolausGebhardt设计,支持粒子系统、动态阴影、角色动画、碰撞检测等高级功能,目前在Android和iPhone上都有可用的移植版本。

在Android系统上,由于C++的效率要高于java,所以它的优点主要体现在它高效的渲染特性上,但对于开发人员来说需要使用Android-NDK实现本地代码的编译,调试难度大,很不方便。

4.Alien3D

Alien3D功能比较简单,整个图形引擎的代码很少,特别是在Android平台上的移植版本从2009年以来已经很久没有更新,是一款逐渐淡出Android世界的3D图形引擎。

Alien3D也是使用Java语言开发的,它实现了原型插件、3DS装载、精灵动画等功能,不过目前研究资料较少,不适合商业性开发。

5.OGRE3D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2