为了让普通人理解相对论,爱因斯坦曾举过一个例子:“当一个男人与美女对坐1小时,会觉得似乎只过了1分钟;但如果让他坐在热火炉上1分钟,却会觉得似乎过了不止1个小时。这就是相对论。”
其实将这个事例引用到手机上也非常贴切,有时候iPhone在冰冷的数字上并没有比Android手机更快,但用户就是会感觉它更加流畅。原因是合理的过渡动画会给用户造成了一种错觉,明明是相同的结果,用户体验则是云泥之别。
锤子手机在这一点上和iPhone的追求是一致的,所以当雷锋网编辑表明来意时,锤子科技的设计师肖鹏笑道:“这些你都知道了,还采访我干嘛。”
知道的只是表象,因此有人(王自如)会认为“锤子手机的所有功夫都做在了表面”,至于这份表面功夫做到了什么程度,用锤子科技自己的话就是“流畅得完全不像一台Android手机”。
透过现象看本质,探讨产品的本质显然要比立场鲜明的争执更有价值,为此雷锋网编辑采访了锤子科技负责系统优化的软件工程师和UI设计师,以下是对话实录(有删减):
对话软件工程师
雷锋网:影响手机流畅性的因素有哪些?
锤子科技:三部分:硬件的处理能力,软件和UI设计。Framework提供了绝大多数的功能,所以一个应用开发的时候,基本上是从Framework这里开始的。Android系统做得比较大,同时Google并没有在Framework的每个角落都做得特别好。
我们在Framework层做了很多优化,基本上包括以下几点:系统级别的资源预加载;针对专门的keys做一些修改,比如增加一些额外的接口,因为它原有的接口并不是很有效率;另外,针对view层级和窗口我们也会有针对性的修改。
如果应用对性能有一些极致的要求,比如说我们的Launcher(桌面),我们会用OpenGL自己去处理绘图,还有一些复杂的运算放到Native层,不能放到Java层去做。应用还有一些常见的问题,就是它的view层次太复杂,会影响效率。Android的绘图线程要注意效率。另外绘图线程要注意效率,出现耗时操作时要异步处理。
雷锋网:锤子手机的权限管理在使用中好像还没有达到理想的效果。难点在哪?
锤子科技:这是安卓系统的通病,也是我们要着力解决的问题。Android太复杂了,并且它对应用非常友好,导致权限被滥用。其实Smartisan OS对应用的限制还是比较多的,这也是我们未来系统优化的重点工作。
雷锋网:不同厂商选择同样的元器件,流畅性上体现出来的差别是如何造成的?
锤子科技:一方面是软硬件的优化,一方面是UI视觉效果上的优化。其实对硬件的优化工作,大部分是芯片厂商在做,手机厂商只能做一些“边角”的事情。在我看来,对上层应用的优化还是最有效的,不过对应用的修改越多,涉及下面Framework的就越多,尤其是UI差异导致逻辑与原生Android不同时,原生系统就没有优化得那么好,这时候需要我们去优化Framework,甚至系统底层。
雷锋网:Smartisan OS的动画效果很多,这样的话会不会反过来影响手机的性能?
锤子科技:做得好的话就不会,Smartisan OS是个非常正面的例子。首先对性能和内存我们有常规的监控,一旦发现增加某个Feature会造成性能下降,我们会立刻处理。另外,我们在验收的时候有一项是性能指标,这个指标没过的话,是不可能发布的。当这样操作多次之后,工程师也就慢慢形成习惯,他在做某个Feature的时候,就会考虑性能和内存。
雷锋网:Smartisan OS如何避免(Android手机)非规律性的卡顿?
锤子科技:Android是个分时多任务系统,并不是实时的。这样的话,当前台任务很重时正好赶上后台在跑什么东西,它就会卡。除了打好系统基础以外,我们会通过一些极致的测试去发现它,然后发现一个解决一个。
还有一些问题其实不是手机的性能不够,而是底层显示系统的同步操作导致的。显示系统是分步的,其中有一些又是分两条线去完成,两条线会在一些点上相互等待来确保它的画面效果没有问题。当它在最终的一个点的等待上出了问题时,其实这个等待是可以优化的。当然,这种优化会动到(显示)系统很深的层次,有些器件的操作是有优化空间的。
比如自从(Android)4.0之后,Android系统每一帧16ms的绘图是严格执行的,所以当两个窗口切换的时候,切换动画超过16ms的话,它就只能等到下一帧。如果锤子手机出现了这个问题,我们会集中精力将它做到16ms以内,这样卡顿就解决了。
雷锋网:有人说锤子手机将很多的优化工作都做在表面,如何回应这种观点?
锤子科技:第一,他们只看到了表面,第二,如果只需要优化表面就能达到我们的目标的话,我们也很乐于止步于此。因为大家的时间都很宝贵,那样的话我们可以做更多的事情,但了解软件的人都知道这是不可能的。
对话UI设计师
雷锋网:Smartisan OS设计动画的规则是什么?实现流程是怎样的?
锤子科技:设计的前提是遵循物理直觉,做出来的动画效果一定要符合人的感官。另外,那些过渡动画的效果必须和全局保持一致。就是说在不同页面进行相同操作,它的实现方式应该是一样的。
当设计师产生一个想法时,我们会让动画工程师将效果快速可视化,然后将不同帧率的方案交给老罗,让他做选择。当他选择了其中一种时,再交给工程师去具体实现。
雷锋网(公众号:雷锋网):在iPhone上打开应用,始终是从它所在的位置扩散到全屏,而锤子手机则始终是从下至上填充,相比之下,前者更符合物理直觉吧?
锤子科技:我现在能和你说的是,我们在做的那个翻转方案会更符合物理直觉。这个方案其实我们一直在做,T1上没有是因为我们当时还没做到足够好。而当我们采用这种方案时,一定也会保证它在速度上也比之前的方案更快。
雷锋网:那很多改动其实都是凭设计师的直觉。
锤子科技:这就是别人做不到的,也只有这个团队能保持这个直觉。
雷锋网:哪些细节能提高用户对手机流畅性的感知?
锤子科技:比如在锤子手机上打开每个(官方)APP的时候,都会预加载一张图片,这张图片和打开APP的第一帧画面是一样的,所以给人一种零延迟的感觉。整个过程非常快,用户自然会觉得非常流畅。另外,在同样的时间完成同一个操作,应该尽可能减少步骤。
雷锋网:减少步骤很难吗?
锤子科技:难,有时候要动到系统底层。当初我们发布ROM的时候就发现,其实很多点子大家都有想到。没做的原因是改动的成本很高,同时他们认为最终的效果对用户来说无关紧要。而在我们看来,正是这些小细节支撑了Smartisan OS的独特性。
跟造物者对话,发现产品闪光点——「唯物」是雷锋网打造的产品报道品牌(公众号:okweiwu)。我们关心一个产品是什么、从哪里来、要到哪里去。希望同样在做硬件的业者,读过「唯物」的文章,能够有所启迪。
如果你也想跟我们聊聊你的产品,请发介绍到 chanpin@leiphone.com,24小时内必复。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/64921.html