目前来说Android平台在整体性能上表现不错,大多数调用都是Dalvik API通过JNI到底层了,但是在游戏性能方面和iPhone的Objective-C有着较大的差距,最新发现有如下的改进:
1. 首先内存方面,可以参考 Android堆内存也可自己定义大小 和 优化Dalvik虚拟机的堆内存分配
2. 基础类型上,因为Java没有实际的指针,在敏感运算方面还是要借助NDK来完成。Android123提示游戏开发者,这点比较有意思的是Google推出NDK可能是帮助游戏开发人员,比如OpenGL ES的支持有明显的改观,本地代码操作图形界面是很必要的。
3. 图形对象优化,这里要说的是Android上的Bitmap对象销毁,可以借助recycle()方法显示让GC回收一个Bitmap对象,通常对一个不用的Bitmap可以使用下面的方式,如
if(bitmapObject.isRecycled()==false) //如果没有回收
bitmapObject.recycle();
4. 目前系统对动画支持比较弱智对于常规应用的补间过渡效果可以,但是对于游戏而言一般的美工可能习惯了GIF方式的统一处理,目前Android系统仅能预览GIF的第一帧,可以借助J2ME中通过线程和自己写解析器的方式来读取GIF89格式的资源。
5. 对于大多数Android手机没有过多的物理按键可能我们需要想象下了做好手势识别 GestureDetector 和重力感应来实现操控。通常我们还要考虑误操作问题的降噪处理。
Android堆内存也可自己定义大小
对于一些大型Android项目或游戏来说在算法处理上没有问题外,影响性能瓶颈的主要是Android自己内存管理机制问题,目前手机厂商对RAM都比较吝啬,对于软件的流畅性来说RAM对性能的影响十分敏感,除了上次Android开发网提到的 优化Dalvik虚拟机的堆内存分配 外,我们还可以强制定义自己软件的对内存大小,我们使用Dalvik提供的dalvik.system.VMRuntime类来设置最小堆内存为例:
private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //设置最小heap内存为6MB大小。当然对于内存吃紧来说还可以通过手动干涉GC去处理,我们将在下次提到具体应用。
优化Dalvik虚拟机的堆内存分配
对于Android平台来说,其托管层使用的Dalvik Java VM从目前的表现来看还有很多地方可以优化处理,比如我们在开发一些大型游戏或耗资源的应用中可能考虑手动干涉GC处理,使用dalvik.system.VMRuntime类提供的setTargetHeapUtilization方法可以增强程序堆内存的处理效率。当然具体原理我们可以参考开源工程,这里我们仅说下使用方法: private final static float TARGET_HEAP_UTILIZATION = 0.75f; 在程序onCreate时就可以调用VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION); 即可。
转自:http://blog.csdn.net/wenhaiyan/archive/2010/04/23/5519567.aspx
分享到:
相关推荐
Godot桌面游戏开发:桌面游戏性能优化_(10).输入与输出性能优化.docx Godot桌面游戏开发:桌面游戏性能优化_(11).平台特定优化技巧.docx Godot桌面游戏开发:桌面游戏性能优化_(12).测试与调优工具使用.docx ...
音频性能优化.docx CryEngine引擎开发:生存游戏优化与性能分析_(11).界面与UI优化.docx CryEngine引擎开发:生存游戏优化与性能分析_(12).游戏逻辑优化.docx CryEngine引擎开发:生存游戏优化与性能分析_(13)...
Godot引擎AR开发:AR游戏性能优化_(10).多线程与异步加载.docx Godot引擎AR开发:AR游戏性能优化_(11).内存管理与泄漏检测.docx Godot引擎AR开发:AR游戏性能优化_(12).输入与交互优化.docx Godot引擎AR开发:...
ARKit引擎开发:AR游戏性能优化_(1).ARKit引擎开发基础.docx ARKit引擎开发:AR游戏性能优化_(2).ARKit性能优化原理.docx ARKit引擎开发:AR游戏性能优化_(3).硬件加速与优化.docx ARKit引擎开发:AR游戏性能...
Cocos Creator引擎AR开发:AR游戏性能优化_(10).光照与阴影优化.docx Cocos Creator引擎AR开发:AR游戏性能优化_(11).粒子系统优化.docx Cocos Creator引擎AR开发:AR游戏性能优化_(12).物理引擎性能优化.docx...
游戏性能瓶颈识别与解决.docx CryEngine引擎开发:体育游戏优化与性能分析_(13).CryEngine脚本语言优化.docx CryEngine引擎开发:体育游戏优化与性能分析_(14).内存管理与优化.docx CryEngine引擎开发:体育游戏...
移动平台游戏性能优化是一门重要的技术领域,随着智能手机和平板电脑的快速发展,越来越多的游戏开发者开始重视如何在移动设备上实现高质量游戏体验的同时,保证游戏运行流畅无延迟。在此背景下,Qualcomm骁龙游戏和...
CryEngine引擎开发:性能优化与调试_(10).多线程编程与优化.docx CryEngine引擎开发:性能优化与调试_(11).Shader优化.docx CryEngine引擎开发:性能优化与调试_(12).纹理与材质优化.docx CryEngine引擎开发:...
Godot引擎开发:性能优化与调试_(10).文件与资源加载优化.docx Godot引擎开发:性能优化与调试_(11).网络通信优化.docx Godot引擎开发:性能优化与调试_(12).多线程与异步处理.docx Godot引擎开发:性能优化与...
网络性能优化.docx CryEngine引擎开发:优化与性能分析_(12).多线程与并行计算优化.docx CryEngine引擎开发:优化与性能分析_(13).CryEngine脚本与编程优化.docx CryEngine引擎开发:优化与性能分析_(14).游戏...
CryEngine引擎开发:优化与性能分析在教育游戏中的实践_(10).CryEngine的网络性能优化.docx CryEngine引擎开发:优化与性能分析在教育游戏中的实践_(11).CryEngine的脚本与逻辑优化.docx CryEngine引擎开发:...
Unity性能优化是指在游戏开发中提高游戏性能的过程,包括优化CPU和GPU的使用,以提高游戏的帧率和画质。下面是 Unity性能优化的相关知识点: 1. Unity性能调试工具及使用方法 Unity提供了多种性能调试工具,例如...
Cocos Creator引擎开发:性能优化与调试_(10).WebGL与Canvas渲染模式对比优化.docx Cocos Creator引擎开发:性能优化与调试_(11).内存管理与优化.docx Cocos Creator引擎开发:性能优化与调试_(12).性能监控与...
CryEngine引擎开发:性能优化与恐怖效果_(10).多线程与并发编程优化.docx CryEngine引擎开发:性能优化与恐怖效果_(11)....案例研究:CryEngine恐怖游戏性能优化实践.docx CryEngine引擎开发:性能优化与恐怖效果
游戏性能优化.docx Phaser引擎开发:2D游戏开发_(10).资源加载与管理.docx Phaser引擎开发:2D游戏开发_(11).网络通信与多人游戏.docx Phaser引擎开发:2D游戏开发_(11).跨平台发布与适配.docx Phaser引擎开发...
Unity性能优化是游戏开发中的重要环节,特别是在使用Unity3D引擎进行C#编程时,确保游戏运行流畅、资源高效利用是提升用户体验的关键。本PDF文档很可能是针对Unity引擎的性能优化策略进行深入探讨的资料,涵盖了多...
Godot引擎开发:性能优化与恐怖效果_(12).Godot引擎中的恐怖游戏玩法设计.docx Godot引擎开发:性能优化与恐怖效果_(13).Godot引擎中的恐怖AI设计与实现.docx Godot引擎开发:性能优化与恐怖效果_(14).Godot...
游戏性能优化技巧.docx GameMaker Studio开发:体育游戏打包与跨平台发布_(12).GameMakerStudio打包发布基础.docx GameMaker Studio开发:体育游戏打包与跨平台发布_(13).Windows平台发布流程.docx GameMaker ...
GameMaker Studio开发:优化与性能分析_(10).声音与音频优化.docx GameMaker Studio开发:优化与性能分析_(11).网络与多人游戏优化.docx GameMaker Studio开发:优化与性能分析_(12).加载与缓存优化.docx ...
性能优化与发布.docx Godot桌面游戏开发:棋盘游戏逻辑_(10).棋盘布局和坐标系统.docx Godot桌面游戏开发:棋盘游戏逻辑_(11).棋子移动逻辑.docx Godot桌面游戏开发:棋盘游戏逻辑_(12).游戏状态管理和输赢...