我们即将在iOS10上迎来大量的变化,诸如iMessage这样苹果重点提到的内容肯定是能赢得最多的关注了,但还有一些并没有摆在台面上的改进却值得注意,尤其是新系统中应用运行更加快速流畅这个变化。那么苹果是如何做到的呢?
如果要用最简单的语言来说明其中的奥妙所在,可以这么理解:新的API将能够稍微提前一点点去加载你即将看到的内容,而不再是当你进行滚动操作的时候,内容才开始加载。
不少应用都有大量所谓的“区块”,或者说数据集合。以前当你快速向下划动应用页面时,可能会注意到应用在试图跟上你的操作时会有卡顿。这种丢帧现象会让应用的性能表现看上去比它应有的水准更坏。
在WWDC大会的其中一个环节中,苹果特意提到了这些丢帧现象的原因,那就是应用得在内容进入屏幕区域之后才开始加载,即使加载速度不过是毫秒之间,都会让你注意到有明显的卡顿出现。
在iOS10中,苹果将会让那些“区块”在你进行滚动操作时提前加载,确保内容进入屏幕时已经被加载完毕,滚动时的性能影响和加载时间是不会被注意到的。苹果表示60帧每秒是最理想的,但是应用达不到这个目标也是常事。
至于加载时间要提前多少的问题,苹果称它的测试已经表明应用的滚动性能是能够停留在60帧的安全区的。
这种理念被称为“数据预提取”,而且能够进行反向工作。那些滑出你的屏幕的“区块”较之以前会被保留更长的时间,以免你突然想要再回头看看刚才漏掉的内容。这样一来,再往上滚动仍然能有流畅的体验。
另外苹果还改变了应用访问数据的方式。新的API仍旧采用异步的方式访问数据,但调用更快了。尽管苹果希望将这个新设计用于Core Data,它也适用于开发者采用的任何解决方案。
在这方面上,诸如Realm这样的数据库方案对于移动应用来说更好一些,速度上比Core Data或SQLite更快。苹果自家的载入方案终于赶上来了。
小编推荐阅读