我正在构建Apple WatchOS 2应用程序,该应用程序通过生成的图像不断进行动画处理。
因为这些不能与应用捆绑在一起,所以它们会在InterfaceController中生成,然后设置为在手表上显示如下:
self.imageGroup?.setBackgroundImage(self.image)
在此之前,我已经以每秒1张图像的速度生成这些,这感觉相当安全,但显然提供了1fps的非常低的帧率。现在我想知道这可以改善多少?
我测量了UIImages本身的生成速度,这是一个相当低的.017秒。这些图像的大小也相当一致,大约10000字节。如果没有进一步的延迟,这将给我一个更接受的性能,大约58fps。
我的问题是 - 是否有蓝牙与手机通信的典型速度,我可以将其与该图像尺寸进行比较以确定真实的帧速率?
或者 - 我假设在发生这种情况时调用setBackgroundImage
并不会阻止主线程。有没有办法可以找出实际设置需要多长时间?
答案 0 :(得分:1)
Apple没有记录此速度,因为它的大部分取决于连接强度。而且由于用户不需要将手表和手机放在彼此旁边,因此用户传输的距离越远(或手机和手表之间的物体类型)。
您的图像是10 KB,并且您希望每秒发送58张图像,因此每秒580 KB或.58 MB?数据量听起来并不现实(尽管它会耗尽电量)。但是,两个设备之间的每次网络呼叫都会产生一些开销。这些图像是否需要实时发送?如果没有,你可能会获得更好的性能,如果你最初可以延迟1-2秒,然后批量组合58个图像,你可以在手表上设置动画。您每秒只能进行一次网络呼叫,这对于设备来说比每秒58次呼叫更易于管理。