android canvas速度,android – lockCanvas()真的很慢

在较慢的设备(Orange San Francisco aka ZTE Blade)上测试我的游戏,我一直在获得惊人的帧率.

我将一些调试代码放入绘制循环中,发现以下行占用了100ms:

c = mSurfaceHolder.lockCanvas();

有人看到这个行为吗?我暂时通过扩展View和实现onDraw()替换了surfaceview,并且我得到了更好的帧率.

虽然在我的HTC Desire中,surfaceView的速度要快得多.我怀疑这可能是一个Android 2.1的问题.我正在考虑生根手机,如果可能,将其升级到2.2,但是我确实想要一个在2.1上运行的设备,从长远来看可能会产生反效果.

**更新**

我一直在努力工作,并发现了一些更令人困惑的方面.

我根植了手机并安装了2.2,问题依然存在.当应用程序第一次启动时,lockCanvas正常工作(0-1 ms).然后在我的初始化过程中的某个时刻,lockCanvas突然开始耗时约100ms.

可能值得指出的是,我正在将资源加载到异步任务中,以便我可以显示加载屏幕.

尽管我尽最大努力确定了程序实际上在缓慢发生时,我无法做到这一点.事实上,当我运行它在调试模式和单步,它的工作速度快!

现在我发现如果在我的SurfaceView的构造函数中添加一个延迟(大约10秒),那么缓慢并不会发生,所有这些都可以正常工作.

但是,如果您按住Home键,然后再切换回来,慢慢回来.

我几乎在这个愚蠢的不合逻辑的问题上我的系绳的尽头!我有一个想法,把它放在一个具体的设备问题.

我觉得它可能与内存使用有关.也许某些东西被换掉,它影响视频RAM?

我至少对理论感兴趣

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值