【发布时间】:2015-09-19 12:18:09
【问题描述】:
情况
我开始为 Android 开发,发现 Android 处理布局、动画等的方式不足以实现流畅的触摸反馈和实时动画,尤其是在 Android 4.0 之前。因此,我决定使用游戏应用方法:使用SurfaceView 并定义我自己的绘图代码。
问题
经过几次测试,我发现这种方法对于非游戏应用程序需要过多的 CPU,我认为这是由于每秒重绘静态元素 60 次造成的。
第一个解决方案和缺陷
为了解决这个问题,我修改了我的代码,以便应用程序仅在应该绘制的内容发生任何更改时才重新绘制屏幕(调用postInvalidate)。此解决方案解决了部分问题,但即使小按钮移动了一个像素,应用程序仍必须重绘静态元素。
问题:可能的更好解决方案?
为了更好的解决方案,我考虑了Android是如何处理这个问题的;每个屏幕元素都有单独的View。所以我虽然,也许我可以有一个SurfaceView 用于大型、静态、内容元素,另一个用于小型、移动的 UI 元素,并实现类似的效果。我的问题是,这真的会像我上面描述的那样提高性能吗?
谢谢。
【问题讨论】:
标签: android optimization android-view surfaceview