移动应用开发综述(移动应用开发综述范文)

网友投稿 835 2023-01-17

本篇文章给大家谈谈移动应用开发综述,以及移动应用开发综述范文对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享移动应用开发综述的知识,其中也会对移动应用开发综述范文进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Android系统原理及开发要点详解的前 言

Android 是Google历经数年和投资数亿美元开发出来的智能手机系统,Google也发起了围绕Android的组织——开放手机联盟,其英文全称为“Open Handset Alliance”。
随着各大移动终端生产商大力开发和生产基于Android的移动智能设备,Android迅速得到业界和社会的认可,并成为整个产业的热点,基于Android平台的各类人才逐渐成为各大企业竞相争夺的焦点。
Android系统是一个开放的系统,任何公司、个人开发者、爱好者都可以参与其中。对于技术工作者,Android不仅是一个智能手机的系统,也可以作为学习嵌入式Linux系统的较完整的软件平台。
Android是一个较新的系统和技术,因此介绍Android的资料和书籍还比较少,尤其简体中文的书籍,相对更少。本书《Android系统原理及开发要点详解》 是一本综合介绍Android系统的书,集合了Androidin社区多位专家作者的经验,精心编写而成。
Android 作为一个庞大的系统,包括了Linux操作系统、各种本地程序、虚拟机和运行环境、Java框架和Java应用程序多方面的内容。这对于初学者是一个非常大的挑战,因此对于学习、研究进而开发Android系统来说,掌握系统的脉络和使用恰当的学习方法是非常重要的,这也是本书的组织主旨。
本书特点
为了适应Android系统的情况,本书在内容的编排和组织上具有以下一些重要特点。
保持完整性和层次性
本书紧紧把握Android系统的4个层次,分章节介绍,并且有重点地介绍了Android整个系统的代码结构、编译系统、相关工具、各部分组织等全局性内容。这将让读者即使只花费较短的时间,也可以获得对Android系统大致的感性理解。
提供清晰的框架
Android是一个有数百兆大小的较大系统,各部分之间是有机联系的,这就要求Android的学习和开发者需要具有一些软件架构方面的知识。本书为Android整体和重点模块绘制了大量的框图,这样非常有利于帮助读者直观地理解系统。本书在讲述每一个部分时,均列出相关代码的路径,帮助读者对应着进行快速、高效地学习。
抓核心内容
Android系统已经发布了若干个版本:1.0、1.5(cupcake)、1.6(donut)和2.0(eclair),从开发的角度,各个版本在同时使用,这对于学习者是一个较大的挑战。因此本书作者通过把握Android演进中脉络,尽量总结出共性的内容展示给读者。在某些部分,在讲解代码的同时,突出概念性的内容。本书力求通过一本教材,给读者一个长期的、稳定的学习方法和思路。
开发细节
Android 包含众多的软件、程序和工具,涉及软件开发各个方面。在实际的开发过程中,很多内容并不需要开发者去改动。本书从工程的角度出发,偏重开发中常用的内容,对于开发中较少涉及的部分,仅做精炼的大致介绍。本书重点介绍显示机制、输入机制、音频/视频系统的移植层、多媒体系统的构建、电话系统的构建、连接系统的构建、传感器的移值、应用开发中最常涉及的部分,在每段讲解中,穿插了开发中可以使用的一些技巧。
本书内容
本书的各个章节及其组织方式如下所示。
第1章“Android系统概述”,概述Android系统方面的内容,包括智能手机平台的发展历程、Android系统的特点、Android的3种开发工作,以及Android的2种不同的开发方式。
第2章“Android系统开发综述”,介绍Android系统开发的综述性内容,包括工具使用、获得代码、编译系统、仿真器运行、SDK使用等。
第3章“Android的Linux内核与驱动程序”,介绍Android内核的特点、Android中使用的专用驱动程序、Android系统可能使用的标准设备驱动。
第4章“Android的底层库和程序”,介绍Android系统的基础程序,以本地程序为主。
第5章“Android的Java虚拟机和Java环境”,这是介于本地和Java层之间的相关内容,主要介绍Android的Java虚拟机Dalvik的基本概念、Android Java程序的环境、JNI的使用方法,以及Java框架的启动流程等。
第6章“Android的GUI系统”,包括Android GUI系统架构、底层的pixelflinger和libui库、Surface系统、Skia和2D图形系统、Android的OpenGL和3D图形系统等内容。
第7章“Android的Audio系统”,主要是音频的输入输出环节,音频系统从驱动程序、本地框架到Java框架都具有内容。
第8章“Android的Video输入输出系统”,介绍Android的Video输入输出系统,包括Overlay系统和Camera系统两个部分,前者只有本地的内容,后者各个层次均有内容。
第9章“Android的多媒体系统”,介绍Android的多媒体系统的核心部分,包括Android中多媒体系统的业务、结构、多媒体系统的核心框架、OpenCore系统结构和使用等内容。
第10章“Android的电话部分”,介绍Android系统在电话方面的功能,Android是智能手机系统,电话是其核心部分。
第11章“Android的连接部分”,主要包括WiFi、蓝牙及定位系统等,这些Android的连接部分也具有从驱动层到Java应用层的结构。
第12章“Android的传感器系统”,传感器系统涉及Android的各个层次,具有完整的结构,相比其他系统,传感器系统的各个层次都比较简单。
第6~12章分模块介绍Android的几个核心系统,主要是本地框架和Java框架方面的内容,兼顾应用程序和驱动层,这是本书的重点。
第13章“Android应用程序概述及框架”,介绍Android应用程序层的基本概念和应用程序框架,这部分内容是Android自下而上的第4个层次,可以基于源代码或者SDK开发,它们之间的差别非常小。
第14章“Android应用程序的主要方面”,介绍Android应用程序层开发的各个方面,基本上是横向内容,包括应用程序的基本控制、各种UI元素的使用、图形API使用3个方面的内容。
第15章“Android应用程序的设计思想”,本章的内容是基于通用的应用程序和GUI程序的通用设计思想,结合Android系统自身的特点,提出一些值得注意的问题和设计方法。
本书读者
本书适应广大的读者群,力求在Android的系统移植、应用程序开发、系统框架改进方面给读者全面的支持。不同的读者在学习本书时,应该使用不同的方法。
Android初级开发者:在本书指引下阅读代码,搭建系统开发环境,对于Android应用程序的开发者,重点关注后3章的内容。
Android中、高级开发者:通过本书的引导,学习系统架构,关注开发要点,并尽量使用手机系统的通用设计思想、软件工程思想、系统工程思想来指导Android系统学习。
嵌入式Linux系统学习者:将Android作为一个集Linux核心和应用层程序于一体的系统进行学习,并可以利用Android的仿真环境运行和调试程序。
读者在学习本书的过程中,应尽量对照本书的框图和手头的Android源代码,这样可以达到事半功倍的效果。本书在重点代码中加上大量的注释,帮助读者阅读,对于非重点的代码,不占用本书的篇幅,读者可以参考开放的源代码。可以采用顺序读和重点读相结合的方式学习本书,顺序读关注系统框架,重点读关注开发要点。
本书作者
本书在编写过程中提炼和综合Android早期开发者的经验、中国大陆Androidin社区的开发成果,以及各位专家的经验和技术,这是本书出版的知识源泉。本书主要由Androidin社区的两名核心技术专家韩超和梁泉领衔规划和编著,韩超统稿。总部设在南加州、专注于Android平台并提供其移动应用开发及解决方案的迈奔无线(mAPPn Inc.)也投入技术和人力参与了本书的工作。
参与本书编写的还有于仕林、张宇、张超等人,赵家维、黄亮、沈桢、徐威特、杨钰等参与了审校工作。
由于时间仓促,可能依然存在一些错误和问题,请读者见谅,欢迎读者讨论和指点。

移动互联网应用技术要学什么课程?

由邢台职业技术学院信息工程系官网资料显示,移动互联网应用技术主要学习下图内容。

拓展资料

1、培养目标  

本专业主要培养基于Android和IOS平台的手机APP设计、手机游戏设计,以及基于Linux+C的智能控制软件设计,以及这些产品的销售和维护等方面的技术人才。本专业学习的课程主要包括手机网站设计、手机应用软件设计、手机游戏开发、Linux操作系统、物联网智能控制和电子产品营销等。本专业培养当前IT行业中最紧缺的物联网或移动应用人才。

2、专业特色

本专业以市场急需的手机软件设计、手机游戏设计或物联网应用系统为主线,以项目化教学为主线,以小组学习为主要组织方式,以实用性小项目为学习内容,以提升项目开发经验为主要目标。与北京中北信号软件公司(常驻教学区)联合培养,优秀学生都有机会提前进入该公司参与项目开发实战,毕业还可以直接留在公司继续发展。

3、工作与薪资

本专业主要面向从事移动应用软件开发或物联网应用系统开发的IT企业,从事手机软件开发、手机游戏开发、智能控制系统开发、物联网应用系统开发等高薪岗位,或者是从事相关产品的售后和测试等工作,如开发工程师、测试工程师、售后服务工程师、营销主管等。

本专业毕业学生实习期间的待遇一般在3500-4500元/月,毕业1-2年后,一般年薪都高于8万,最高可达20万以上。

参考资料: 邢台职业技术学院信息工程系--专业介绍

IOS开发论文参考文献

IOS开发论文参考文献

[1] 田妞。 WWDC 2013亮点汇[J]. 中国质量万里行。 2013(07)

[2] 黄佳星,王晶,沈奇威。 基于Android的移动互联网应用框架方案[J]. 电信工程技术与标准化。 2012(08)

[3] 曹森,苏贵斌。 软件开发中的设计原则[J]. 软件导刊。 2012(01)

[4] 罗军舟,吴文甲,杨明。 移动互联网:终端、网络与服务[J]. 计算机学报。 2011(11)

[5] 陈子涵,吴明晖,应晶。 基于MDA的移动应用开发框架[J]. 计算机工程。 2011(18)

[6] 夏浩波。 单例模式的设计与应用[J]. 电脑开发与应用。 2011(01)

[7] 黄金国,罗震。 手机应用程序开发架构的研究[J]. 计算机工程与科学。 2010(11)

[8] 张琳琳,应时,倪友聪,赵楷,文静。 一种软件体系结构关注点分析方法[J]. 计算机学报。 2009(09)

[9] 刘瑜,王立福,张世琨。 软件框架开发过程研究[J]. 计算机工程与应用。 2004(02)

[10] 张伟,梅宏。 一种面向特征的领域模型及其建模过程[J]. 软件学报。 2003(08)

[11] Matthew J. Evans,Graeme Clemens,Christopher Casey,Matthew J. Baker. Developing a mobile app for remote access to and data analysis of spectra[J]. Vibrational Spectroscopy . 2014

[12] Pocatilu,Paul. Developing an M-Learning Application for iOS[J]. Informatica Economica . 2013 (4)

[13] T.R. Gopalakrishnan Nair,R. Selvarani. Defect proneness estimation and feedback approach for software design quality improvement[J]. Information and Software Technology . 2011 (3)

[14] Unhelkar, Bhuvan,Murugesan, San. The Enterprise Mobile Applications Development Framework[J]. IT Professional Magazine . 2010 (3)

[15] 李林梅。 一种支持多平台的无线终端管理软件设计方法[D]. 西安电子科技大学 2013

[16] 詹新林。 基于架构的软件设计方法[D]. 上海师范大学 2009

[17] 潘凌寒。 面向Agent的软件分析和设计方法的研究[D]. 江苏大学 2005

[18] 乔磊。 基于Agent的软件协同系统研究与实现[D]. 西安电子科技大学 2014

[19] Ruiqiang Li,Yingrui Li,Karsten Kristiansen,Jun Wang.SOAP. Bioinformatics . 2008

[20] Kevin Thornton.libsequence: a C++ class library for evolutionary genetic analysis. APPLICATIONS NOTES . 2003

[21] 徐h. 非均匀访存集群中负载均衡系统的设计与实现[D]. 哈尔滨工业大学 2014

[22] 黄大勇. 面向不同优先级网格作业资源重分配问题的专业技术支持[D]. 哈尔滨工业大学 2011

[23] 刘振英. 在媒介融合中不断发展 再创辉煌[J]. 中国广播. 2011(03)

[24] 刘宴兵,胡文平,杜江. 基于物联网的网络信息安全体系[J]. 中兴通讯技术. 2011(01)

[25] 周鹏飞. 国内有关SNS网站的研究综述[J]. 现代情报. 2010(07)

[26] 王学惠. 并行程序解析性能模型的'自动生成技术研究[D]. 哈尔滨工业大学 2014

[27] 龙禹. 基于WFD的智能多屏交互系统的设计与实现[D]. 哈尔滨工业大学 2013

[28] 张文凤. 面向智能电视的个性化人机交互系统的设计与实现[D]. 哈尔滨工业大学 2013

[29] 肖志辉. 移动互联网研究综述[J]. 电信科学. 2009(10)

[30] 鲁维,胡山. 我国移动互联网业务发展现状及趋势分析[J]. 电信技术. 2009(05)

;

如何在WP8上搭建cocos2d-x的游戏开发环境

多平台游戏渲染开发返回首页
跨平台移动应用开发的渲染解决方案综述
在移动设备上做应用/游戏开发,实现跨平台是主流。对于应用/游戏的逻辑功能和核心算法部分,如果是用C++进行开发的,因为iOS/Android/Windows Phone 8/Windows Store均支持Native的C++开发,所以可以轻松的移植到各个平台,应用/游戏的Backend也有如Photon这样的跨平台解决方案。对于一部分图形要求很高的应用,如游戏和一些UI定制化需求很多的应用,渲染部分往往需要花更多的精力实现移植。对于渲染部分,跨平台开发者有以下三种选择移动应用开发综述
1) 使用已有的一些跨平台图形解决方案,如cocos2D-x, Unity 3D等游戏引擎以及HTML5。
2) 将渲染部分在程序设计时独立,针对不同的平台分别实现渲染。在Windows Phone / Windows Store应用中,DirectX和XAML可以结合使用,从而方便的与第三方SDK结合使用。
3) 将现有的渲染代码通过工具映射到其他平台。如开源的Angle project可以将OpenGL ES自动映射到DirectX。
本文将分别对这三种选择依次作介绍,为开发者顺利完成应用/游戏在渲染部分的移植作一个参考。因时间和能力有限,谬误之处请不吝指教。
(1) 使用游戏引擎/HTML5等现有的跨平台解决方案
cocos2d-x:cocos2d-x是一个开源免费、易学易用的2D跨平台游戏引擎,支持Windows Phone, Windows 8, iOS和Android多个平台。目前是国内最流行的2D游戏引擎。其-为:
http://www.cocos2d-x.org/news/143
Unity 3D: Unity 3D是一个非常强大的商用跨平台开发工具,支持Windows Store, Windows Phone, iOS, Android, Wii等多个平台。Unity 3D是移动平台上3D引擎的领头羊,同时Unity 3D也能很好的支持2D图形开发。-:
http://unity3d.com/unity/whats-new/unity-4.3
XNA:XNA可支持Windows, Xbox 360和Window Phone,以前使用XNA开发的针对Window Phone 7.x的游戏仍然可以在Windows Phone 8上运行。但不支持创建新的目标设备为WP8的游戏。请参考:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207003(v=vs.105).aspx
http://msdn.microsoft.com/en-us/library/bb200104.aspx
MonoGame:MonoGame旨在帮助XNA开发者在Windows Phone 8, Windows 8,iOS, Android,Mac,Linux等多个平台实现跨平台开发。官方主页:
http://www.monogame-/
在开源平台codeplex上的页面:http://monogame.codeplex.com/
Marmalade:Marmalade是一个非常有特色的跨平台游戏引擎,它支持在Windows上将应用Deploy至iOS。支持将OpenGL的程序直接转换成DirectX11的以移植到Windows Phone平台上。请参考:
https://www.madewithmarmalade.com/
http://www.madewithmarmalade.com/windows-phone-8
HTML5: 除了游戏引擎,还可以使用HTML5实现跨平台。对Windows Store游戏,可使用HTML5 和 JavaScript。如果熟悉HTML5 和 JavaScript (WinJS) 的开发,同时游戏不需要复杂的动画效果,并且对于游戏的实时性能没有非常高的要求,可以考虑这种游戏开发模式。
推荐使用的情景:充分利用HTML5 和 JavaScript(WinJS)的开发经验。 方便页游的迁移,缩短开发周期
不推荐使用的情景:如果移动应用开发综述你的游戏有大量的图像处理,或者对性能要求很高,使用HTML5 和 JavaScript 开发模式就不太适合移动应用开发综述你的游戏。 最好使用DirectX 和 C++ 结合。
请参考:http://msdn.microsoft.com/en-us/library/windows/apps/hh465158.aspx
开发例子:design.htmlwindowsapps/JavaScript-and-HTML5-touch-d96f6031
(2)针对不同平台分别用OpenGL / OpenGL ES或者DirectX实现渲染
在跨平台应用程序设计的时候,我们可以将渲染部分独立,最简单的设计是创建 Renderer类,分别针对Windows Phone, iOS和Android实现。众所周知,OpenGL ES主要用于Android和iOS平台的开发。而WP8和Windows Store使用DirectX11 API。接下来我们重点比较OpenGL和DirectX的异同,供开发者在切换平台时参考。
OpenGL ES / OpenGL与DirectX性能比较
这是一个在OpenGL和DirectX诞生以来很多人比较热衷于讨论的问题,所以在这里简要的提一下。其实一款显卡在设计的时候就会考虑要支持OpenGL和DirectX两种标准的所有feature,而不管是GLSL还是HLSL的shader,在经过驱动编译后都是在同样的硬件中同样的并行计算模块上运算,纹理等resource也是存储在同样的显存上。OpenGL和DirectX实现的应用程序其性能更多取决于驱动的优化程度而非OpenGL / DirectX API的优劣。OpenGL或者DirectX的API的选择对游戏的性能的影响主要局限于CPU部分而不是GPU。例如AMD最近发布的Mantle API其主要优化也是集中于减少CPU的开销,且仅适用于AMD显卡。而OpenGL和DirectX的API对CPU部分开销的比较至今没有一个定论,也即没有一方是明显优于另一方。OpenGL ES在设计时是参考OpenGL的,可以说是OpenGL的一个子集,其API也没有优于DirectX的说法。
开发者如果对游戏性能有所顾虑,可以更多的可考虑一些平台相关的特性而非API本身。例如在iOS使用pvr格式的纹理(PowerVR的有损压缩格式),而在Windows平台使用DDS格式的纹理。在下文中有关于手机纹理的详细说明:
手持平台纹理格式说明
硬件对OpenGL ES和DirectX的支持
在写这篇文档的时候(2013年10月),智能手机普遍可以支持OpenGL ES 2.0或以上了。下面的表格列出了OpenGL ES与DirectX的比较。OpenGL ES 2.0相当于DirectX 3D的feature level 9。OpenGL ES 2.0所支持的GLSL对应于DirectX的HLSL。
OpenGL ES版本列表
OpenGL ES版本号 对应OpenGL版本 对应的DX版本 版本特性
1.0 OpenGL 1.3 低于DX9 Fixed function rendering
1.1 OpenGL 1.5 低于DX9 Fixed function rendering。虽然OpenGL 1.5中引入了ARB shader,但是OpenGL ES 1.1中仍然是不支持的。
2.0 OpenGL 2.0 DX9 支持GLSL
3.0 OpenGL 3.0 DX10与DX9之间 兼容OpenGL ES 2.0,但不支持DX10中才有的Geometry Shader, OpenGL自3.2版本开始支持Geometry Shader.
OpenGL和OpenGL ES详细信息可参考Spec或Wiki中的介绍。可参考下面的链接:
http://www.khronos.org/opengles/
http://en.wikipedia.org/wiki/OpenGL
http://en.wikipedia.org/wiki/OpenGL_ES
DirectX 版本(忽略DirectX9以前版本,因为不论WP还是Win8的硬件最低要求都是支持DX 9.1)
DX版本 与OpenGL ES对应关系 支持的 Shader
9.x 功能上相当于OpenGL ES 2.0 Vertex Shader, Pixel Shader
10.x 包含OpenGL ES 3.0的feature 增加了 Geometry Shader
11.x 包含DX10且包含OpenGL ES 3.0 增加了 Hull Shader和 Domain Shader
各应用平台对OpenGL ES、DirectX以及OpenGL(非ES)的支持
Android iOS Windows Phone / Windows Store
根据下面的讨论,在2010年,已经有超过75%的Android设备可以通过NDK支持OpenGL ES 2.0. 估计目前绝大多数Android设备均可使用至少OpenGL ES 2.0。
https://groups.google.com/forum/#!topic/android-developers/HBddHFyxYeo
需要Android 4.3或以上才能支持OpenGL ES 3.0

从iPhone 3GS开始支持OpenGL ES 2.0.
从iPhone 5S开始支持OpenGL ES 3.0

从Windows Phone 8开始支持DirectX 11的API,其feature level是DX 9.3。开发必须使用DirectX 11的API。
Surface RT要求必须能运行DX 9.1的feature。
在Windows Store中针对x86和x64平台可使用DX10和DX11的feature。如无法支持DX9,需要在程序启动后显示说明。
在WP8之前的WP,可使用XNA开发,相当于DX9的feature level。
在Windows Store应用中,可使用OpenGL(非ES)开发。参考如下:
http://opengl.codeplex.com/
OpenGL ES 2.0是目前在iOS和Android平台上通常使用的图形解决方案,常用的游戏引擎中的渲染部分是对OpenGL ES的封装。OpenGL ES 2.0所对应的DirectX 版本是DirectX 9,。而WP8和Windows 8对硬件的最低硬件要求即DX9,这使得基于OpenGL或者游戏引擎的应用向WP/Windows 8移植变成很自然的事情。
WP8和Windows 8应用商店的应用需要使用DX11的API进行编程,我们只需要将DX11的Feature level设置为DX9即可(参考下面的代码片断)对应于OpenGL ES 2.0。对于Windows Store中的应用,我们还可以使用DX10和DX11中的feature, 实现比OpenGL ES 2.0更加强大的渲染功能和更好的性能。
D3D_FEATURE_LEVEL featureLevels[] = { D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0, D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_1 }; D3D_FEATURE_LEVEL APP_MIN_FEATURE_LEVEL = D3D_FEATURE_LEVEL_9_1;
如前所述,其实OpenGL ES 2.0是OpenGL 2.0的子集,对应于DirectX的Feature level 9所能够实现的功能是相当的。所以能够使用OpenGL实现的效果,通常也可以使用DirectX实现。Visual Studio支持两种DirectX的模板,一种是仅使用DirectX而不使用XAML,另外一种是将DirectX和XAML结合。我们比较推荐的是DirectX和XAML结合。因为XAML中定义的丰富的界面元素,交互的实现更加简单。第三方的SDK如微博,支付相关SDK都需要XAML的支持。在微软设计DirectX和XAML结合的时候,已经针对不同情景尽可能减少结合时对性能的影响。
XAML与DirectX结合使用的相关文档请参考:
http://channel9.msdn.com/Events/Windows-Camp/Developing-Windows-8-Metro-style-apps-in-Cpp/Building-Apps-with-Cpp-XAML-and-DirectX
http://blogs.msdn.com/b/windowsappdev/archive/2012/03/15/combining-xaml-and-directx.aspx
http://mobile.dzone.com/articles/directx-and-xaml-windows-phone
不管是OpenGL和DirectX,渲染时都需要维护所谓的Context。在Context中保存了一些渲染时的状态信息,例如是否使用了光照,是否启用了雾效,当前使用的纹理是什么等等。一般创建Context的过程都是由平台的模板自动生成,开发者只需要对Context进行适当的设置,并调用OpenGL或者DX的API进行渲染即可。OpenGL ES和DX11创建Context以渲染的过程分别如下(谨供参考,一般移动应用的程序员不需要关心细节):
最常见的渲染过程是设定vertex buffer(VB)、index buffer(IB)、纹理、shader、调用绘制函数,最后显示缓冲中的渲染图像。下面的表格将主要从这几个方面对OpenGL ES和DX作比较。
OpenGL ES DirectX 11
Vertex buffer 和 Index buffer(通常称VB和IB)
在显存/内存中的存储方式和二者没有区别,均按顺序线性存放数据。但使用VB和IB的API略不同

VB和IB中定义的模型通过draw函数绘制。
通常使用glDrawElements函数
偶尔使用glDrawArrays函数(不需要IB)
glBegin, glEnd, glVertex3f等OpenGL函数在OpenGL ES中因为效率的考虑已经移除。

Draw通常使用DrawIndexed绘制VB/IB中的内容
也有DrawInstanced, DrawAuto等函数可供选择
注意Instancing在DX9中已经支持,在OpenGL 3.0才支持。
在DX 10以后还可通过Geometry shader实现Instancing
VB中顶点的属性(Attribute) 如normal, color, texture坐标, position等等 使用glVertexAttribPointer函数分别指定顶点的各个属性
与DX的比较可参考下文:
将 OpenGL ES 2.0 缓冲区、uniform 和顶点属性与 Direct3D 进行比较

DX的API中没有Attribute这个概念,仅使用结构体 D3D11_INPUT_ELEMENT_DESC描述VB中每个顶点的数据格式
m_d3dDevice-CreateInputLayout
Shader / Program

OpenGL中Shader又叫Program
支持运行时编译,即GLSL文本在运行时编译。
分Vertex Program和Fragment Program

对于Windows Store和WP8需要在编译时将HLSL编译成生成伪汇编代码。如Shader编译出错则无法生成可执行文件。
在DX feature level 9中
分Vertext Shader和Pixel Shader分别对应于GLSL中的Vertex Program 和Fragment Program
Shader的常数设置 API中包含Uniform,如:
glGetUniformLocation
glUniform4fv

使用Constant Buffer相关函数,如:
m_d3dDevice-CreateBuffer
m_d3dContext-UpdateSubresource
m_d3dContext-VSSetConstantBuffers
资源管理,如纹理和buffer 使用glCreateShader, glBufferData, glGenBuffers, glTexImage2D, eglBindTexImage等等API管理资源 使用ID3D11Device管理资源。一般会有一个ID3D11Device指针,用以调资源管理的DX API ,如函数CreateTexture2D()。在Windows Store的应用可以使用一些已经封装好的Loader类加载纹理资源。微软的Sample中常使用BasicLoader类,程序员可在其基础上进一步修改增强。
Context管理, 用于配置渲染管线 glAttachShader, glGetUniform*等等API 一般创建ID3D11DeviceContext类的指针,再使用context指针调用Context配置的API
显示缓冲区内容 使用SwapChain函数 使用Present函数
坐标系
X正方向为右,Y正方向为上。
详细的异同可参考下面:
Coordinate Systems (Direct3D 9)
OpenGL使用右手坐标系,所以Z的正方向指向屏幕外。
DX使用左手坐标系。所以移植时三角形的顶点顺序要反向,Z的方向也要反向。
可以使用函数 D3DXMatrixPerspectiveRH 和D3DXMatrixOrthoRH来做右手坐标系的投影映射。详细请参考最左边的链接 关于移动应用开发综述和移动应用开发综述范文的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 移动应用开发综述的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于移动应用开发综述范文、移动应用开发综述的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:金融小程序安全吗知乎(金融小程序安全吗知乎)
下一篇:微信小程序生态服务商怎么开通(小程序服务商申请入口)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~