Android 以前慢,是因为它不缓冲已渲染的部分,每一帧都重绘改变的了 rect,就像 Windows 的古老做法一样。你可以回忆一下引入 DWM 之前,Windows 上快速拖动一个窗口,特别是比如在打开了一个复杂文档的 Word 窗口上方拖另一个窗口,CPU 耗光,下面的窗口却来不及刷新的情景。ARM 比 x86 慢一到两个数量级,在 ARM 上用重绘去实现拖动,帧率自然很低。
cocoa touch 是苹果最 NB 的东西。它好像是最早在手机上把硬件加速广泛用在 UI 框架上的吧。把 CPU 从平移、旋转、缩放中解脱出来,往下拖动的时候只渲染一次下面的内容,再把它一点点往上挪,自然优于每一帧都重绘。