我正在为iPhone / iPod编写一个软件。我在模拟器上进行了测试,最近使用了我的第一代。 iPod touch。令我惊讶的是,iPod设备上的代码有点迟钝。
我的程序(使用核心图形)绘制一个大的背景图像,一些其他图像,一个大的径向渐变填充,使用透明度(alpha),使用几个圆角矩形剪辑,一个圆形剪辑,绘制一些单独旋转围绕一个圆圈的文字,并旋转整个事物。代码显然使用了几个嵌套的保存/恢复上下文。整个事情是动态的,需要动态计算很多东西。
对于经验丰富的iPhone程序员,我有一些问题:
(1)我应该从像我所描述的程序中获得什么样的性能。它听起来好像应该真的飞起来,还是听起来对这些设备听起来相对复杂?
(2)不同iPod / iPhone型号之间的速度差异是什么?
(3)使用核心图形时是否有任何已知的事情需要避免?任何明显的优化(图像颜色深度/分辨率)?
答案 0 :(得分:2)
有三类设备:ARM7(iPhone,iPod touch第一代,iPhone 3G和iPod touch第二代),Cortex A8(iPhone 3G S,iPod touch第三代)和A4(iPad,iPhone 4)。同一类中的设备应具有相似的性能。
CoreGraphics通常很慢,因为它根本不使用GPU。使用CoreAnimation将您的场景分成几层,只重新绘制小幅增强所需的内容,或将绘图代码移植到OpenGL ES以获得最佳性能。