nokia 6681内存问题及解决办法

   昨天做真机测试,在nokia 3230上完全OK的程序,移植到6681上,截图并上传3-5次之后必然卡在截图位置,百思不得其解。

    按理说,6681用的是s60 FP2的,比3230的s60 FP1的系统要高一档,至少应该不会比3230要差吧。结果倒好,反过来了,nokia啊。。。。。。晕

    今一直在debug,偶然间想起了appman,忽然想查下内存使用情况。一查,好了,本来空闲1M的内存现在只剩30K+,瀑布汗(声明啊,我没乱分配空间,所有不用的类跟数组,都null了,否则在3230上就该有这问题了)撇嘴

    说内存泄漏吧,我们调用下system.gc,让KVM来清理一下,应该没问题了吧。结果,在emulator上,KVM能做的很好,200K的虚拟内存,程序始终保持在40K+的位置。移植到6681,问题依旧,结论是:6681并没有调用GC,无论在内存多小的情况下。

    GOOGLE/baidu也搜了很多文章,比较合理的解释是:6681的内存较小,且KVM功能有欠缺,内存管理能力不足。

    不说废话了,就算KVM有问题,俺们PG也得硬着头皮把东西做起来大兵

 

    对于新建类,比如线程,尽量进行重用,运用wait和notify,不要每次都新建一个类,用完在设null。后者在其他机型上可以进行(虽然效率不高),但在6681绝对不行,等你重建了3-7次之后,等着当机吧~~~偷笑

    对于图片,也不能每次都重载, 判断下在创建永远是明智的,网上也有很多图片优化的就不说了。

  if(imgs == null)
            imgs = new Image[GameData.imgName.length];
  声效类,WAV/MIDI/OTT,都可以,推荐顺序是ott>midi>wav,原因不用讲了吧(大小)?

 

 

多的想不起了,总结下就一句,要在nokia机器上运行的j2me程序,绝对不要相信WTK模拟器的结果!!!一定要在目标机型的真机上挨个试遍,否则就等着哭吧~~偷笑

 

 

 

 

附上几个6681相关discussion的网址,仍被它折磨着的同志们看看吧:

http://www2.matrix.org.cn/thread.shtml?topicId=30649&forumId=4&fid=4

http://www.j2medev.com/bbs/dispbbs.asp?boardid=11&id=7240

http://j2medev.spaces.live.com/blog/cns!8D09CFF9FE06ED5D!978.entry

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值