Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3101020
  • 博文数量: 94
  • 博客积分: 2599
  • 博客等级: 少校
  • 技术积分: 990
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-30 23:23
文章分类

全部博文(94)

文章存档

2012年(1)

2011年(7)

2010年(24)

2009年(61)

2008年(1)

我的朋友

分类: LINUX

2009-04-09 01:18:38

Google设计Android平台时选择了Java,Java语言是一种解释型语言,需要Java VM实时解析运营,虽然有JNI机制但是似乎谷歌并不希望Android平台出现很多安全问题,提供程序运行效率的方法就显得尤为重要了,尤其是性能敏感的游戏设计。

  1.Java内存控制

  对于字符串操作而言如果需要连加这样的操作建议使用StringBuilder,经过调试不难发现如果你的字符串每次连加,使用String需要的内存开销会远大于StringBuilder,然后Android手机常规的运行内存大约在128MB左右,对于运行多任务就需要考虑了,提示因为Java有GC不需要手动释放那么分配的时候就要格外的小心,频繁的GC操作仍然是很影响性能的,在调试时我们可以通过logcat查看内存释放情况。

  2.循环使用

  平时在访问一个属性的时候效率远比一个固定变量低,如果你的循环估计次数常常大于5,假设xxx.GetLength()方法的值一般大于5,推荐这样写,比如

  for(int i=0;i

  这里xxx.GetLength在每次循环都要调用,必然会影响程序效率,在游戏开发中显得更为明显,改进的方法应该为

  int j=xxx.GetLength()

   for(int i=0;i

  3.图片的优化

  在Android平台中2维图像处理库BitmapFactory做的比较智能,为了减少文件体积和效率,常常不用很多资源文件,而把很多小图片放在一个图片中,有切片的方式来完成,在J2ME中我们这样是为了将少文件头而解决MIDP这些设备的问题,而Android中虽然机型硬件配置都比较高,有关 Android G1硬件配置可以参考,但是当资源多时这样的运行效率还是令人满意的,至少Dalvik优化的还不是很够。

阅读(683) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~