如何解决Android-Canvas.drawBitmap表现出色
我在游戏中使用SurfaceView,并且在游戏开始时,将适合屏幕大小的所有位图(在mipmap文件夹中预先缩放)加载到一个类中。而且我正在使用drawBitmap方法将位图绘制到画布上。
尽管所有位图都以8位PNG格式压缩并按屏幕尺寸缩放,但我的FPS速率非常糟糕(大约40 FPS)
我尝试过的事情:
- 通过性能监视器记录性能并检查结果,从而确保drawBitmap成为问题的原因。基本上,这是唯一导致开销的方法。
- 修剪了侧面的所有透明位,并使用填充画布方法作为背景。
- 正确缩放和压缩位图
- 确保屏幕上方或下方没有任何内容呈现
所以这让我感到奇怪;是配备了现代电话的人,谁知道CPU和GPU的功能比2000年代初的计算机要强大多少倍,因此无法使用其硬件,因此无法执行如此简单的渲染请求,以至于那些拥有20年历史的计算机都能做到?我知道drawBitmap使用CPU,但是...
在这种简单的任务中,我只绘制了一个为屏幕大小1/3的位图,并在其顶部绘制了2-3个小位图(为屏幕大小的1/6),而其低至30 FPS毕竟,这些优化简直令人失望。移植到OpenGL将破坏代码的许多部分,并且显然更具挑战性。据我所知,没有一个库可以通过处理OpenGL来简化绘图位图,而只公开类似于画布的API。
那么我还能做些其他事情来提高性能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。