众所周知,安卓是一个通用的移动操作系统。即使你从一部Nexus手机跳到另一部手机,你的软件体验也可能会以一种非常微妙的方式发生变化。理论上,你应该不会注意到Nexus 6和Nexus 6P之间的很多软件差异。但是,在Nexus 6上,当你同时观看视频和滚动浏览评论时,YouTube应用程序会出现莫名的延迟。很多Nexus 6用户反映,这个问题是跳转到安卓6.0棉花糖后才开始的。那么到底是怎么回事,怎么解决呢?
修起来很简单。您只需打开“开发人员选项”下的“禁用硬件覆盖”选项。以下是更改选项如何影响YouTube的比较。
为什么这个修复有效?我们对自己没有把握。甚至安卓工程团队也没有深入YouTube的根源:
在运行安卓M的Nexus 6上播放YouTube视频时,我们确实注意到了第一次滚动加载的标注时出现的一些问题。当GPU合成被强制时,问题确实得到了改善。安卓6.0上的Youtube使用SurfaceViews进行视频播放,因为它比TextureViews耗电更少。强制GPU合成会以功耗为代价提高批注滚动的流畅度。请注意。
如果你在AMA期间的评论中注意到,该团队确实提到了强制GPU合成可以提高YouTube应用程序的性能。禁用硬件覆盖实际上可以完成这个任务:通过启用这个选项,SurfaceFlinger将放弃使用硬件覆盖,并始终使用GPU进行合成。不幸的是,禁用硬件覆盖将导致功耗增加,这实际上仅用于调试某些类型的媒体应用程序。解决这个问题的一种方法是使用带有安全设置插件的Tasker等应用程序,这样在使用YouTube应用程序时可以自动切换“禁用硬件覆盖”选项。