【Android游戏开发二十六】追加简述SurfaceView 与 GLSurfaceView效率!

简介:

今天在这里大概说下现在为什么游戏引擎都趋向与openGL进行的,这里大概说下;

当今基本所有的国外游戏都是质量很好,不管是从视觉上还是操作还是流畅度上,那么今天我们关注的是其流畅度;

首先有经验的游戏开发者,尤其是一直做2D游戏开发的童鞋门,从J2me到Android,很多做Android的都是从J2me过来的,那么对于J2me-3D开发的基本很少,原因不多说,对于Kjava的机器我也没什么再喷的,反正我是受够折磨了;

很多开发者对外国的游戏狠感慨,为什么他们做的游戏都是那么流畅,不丢帧,其实狠明确的跟大家说,他们大部分游戏都是基于openGL进行的开发,不管是3D还是2D;下面详细说下原因:

对于刚接触Android游戏开发的来说,首先印在心理的就是利用SurfaceView画布进行游戏开发(除3D游戏外),那么开发过程中,越来越多的开发者都开始对Android的运行内存产生怀疑(Android运行内存相对于Kjava的机器那可是大了很多),因为都开始又再次关注内存的使用;动不动就卡,就OOM,我去~狠经典的Error~

一般2D游戏开发使用SurfaceView足够,因为它也是google专们扩展用于2D游戏开发的画布;但是很早前我做过测试:

使用普通的游戏画布(Android中2D专用游戏画布)中进行绘制图片,然后在GLSurfaceView(Android中3D游戏专用画布)中渲染图片的对比中发现GLSurfaceView的效率高于SurfaceView的30倍~呵呵,高了30倍的效率~这是什么概念,可想而知;GLSurfaceView的效率主要是因为机器硬件的GPU加速,现在flash技术也有了GPU加速技术;

下面总结一下:

         一般2D游戏使用SurfaceView足够,毕竟我之前公司做的网游就是用SurfaceView做的,狠流畅,所以不要认为什么都要使用GLSurfaceView(openGL),而且   GLSurfaceView的弊端在于适配能力差,因为很多机型中是没有GPU加速的;关于GPU童鞋门不知道的自己百度,这里不多说了;

不管是做什么游戏,对于开发者而言,流畅是最重要的;再好的游戏几帧左右,谁都哭;

不管使用SurfaceView还是GLSurfaceView,只要内存优化做的好,都基本无差(排除2D\3D游戏差异);希望不管当前你是否看了此文章想将当前的项目换个GLSurfaceView框架还是如何如何,我都希望你静下心来,好好的优化你的内存先,不要总把问题推到SDK和硬件上,毕竟google提供了那就肯定不会那么不效率的,否则人家也不会闲着没事给你整那么多事情来;

对于初学者千万不要顾虑这些,对你来说,游戏的思想是最重要的,多做项目才是王道,否则给再给你个地球,你都认为它2012年也会爆炸,你懂的~





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/632974,如需转载请自行联系原作者

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
目录
相关文章
|
7月前
|
前端开发 开发工具 Android开发
Android播放器之SurfaceView与GLSurfaceView
Surface的官方介绍:Handle onto a raw buffer that is being managed by the screen compositor,Surface是一个raw buffer的句柄,通过它在raw buffer上进行绘制,可以通过Surface获得一个Canvas。
119 0
|
存储 缓存 前端开发
关于Android SurfaceView截屏总结
关于Android SurfaceView截屏总结
1441 0
|
8月前
|
Android开发
Android 使用MediaPlayer和SurfaceView播放视频
Android 使用MediaPlayer和SurfaceView播放视频
67 0
|
9月前
|
前端开发 安全 Android开发
|
Android开发
Android 裁剪摄像头预览窗口-SurfaceView
Android 裁剪摄像头预览窗口-SurfaceView
535 0
Android 裁剪摄像头预览窗口-SurfaceView
|
前端开发 Java Linux
内存泄露,OOM,ANR ,Devik 进程,Framework原理,Activity 生成一个 view,Android 中的动画,SurfaceView和V
内存泄露,OOM,ANR ,Devik 进程,Framework原理,Activity 生成一个 view,Android 中的动画,SurfaceView和V
196 0
|
监控 前端开发 Java
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
354 0
|
消息中间件 设计模式 监控
Android性能优化 | 大图做帧动画卡?优化帧动画之 SurfaceView滑动窗口式帧复用
继上篇用“SurfaceView逐帧解析&帧复用”优化了帧动画内存性能后,一个更复杂的问题浮出水面:帧动画时间性能。这一篇试着让每帧素材大小 1MB 的帧动画流畅播放的同时不让内存膨胀。
709 0
|
算法 Java Android开发
Android性能优化 | 帧动画OOM?优化帧动画之SurfaceView逐帧解析
应用 SurfaceView 逐帧绘制帧动画配合 Bitmap 复用。和原生帧动画的内存压力及卡顿说再见!
833 0
|
前端开发 Android开发
android surfaceview 清屏
引用:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=40776    12楼 清屏可以用橡皮擦的画笔画一个屏幕大小的矩形就可以了//这是定义橡皮擦画笔Paint clearPaint = new Paint();clearPaint.
1234 0