眾所周知,安卓是一個通用的移動操作系統(tǒng)。即使你從一部Nexus手機跳到另一部手機,你的軟件體驗也可能會以一種非常微妙的方式發(fā)生變化。理論上,你應(yīng)該不會注意到Nexus 6和Nexus 6P之間的很多軟件差異。但是,在Nexus 6上,當你同時觀看視頻和滾動瀏覽評論時,YouTube應(yīng)用程序會出現(xiàn)莫名的延遲。很多Nexus 6用戶反映,這個問題是跳轉(zhuǎn)到安卓6.0棉花糖后才開始的。那么到底是怎么回事,怎么解決呢?
修起來很簡單。您只需打開“開發(fā)人員選項”下的“禁用硬件覆蓋”選項。以下是更改選項如何影響YouTube的比較。
為什么這個修復(fù)有效?我們對自己沒有把握。甚至安卓工程團隊也沒有深入YouTube的根源:
在運行安卓M的Nexus 6上播放YouTube視頻時,我們確實注意到了第一次滾動加載的標注時出現(xiàn)的一些問題。當GPU合成被強制時,問題確實得到了改善。安卓6.0上的Youtube使用SurfaceViews進行視頻播放,因為它比TextureViews耗電更少。強制GPU合成會以功耗為代價提高批注滾動的流暢度。請注意。
如果你在AMA期間的評論中注意到,該團隊確實提到了強制GPU合成可以提高YouTube應(yīng)用程序的性能。禁用硬件覆蓋實際上可以完成這個任務(wù):通過啟用這個選項,SurfaceFlinger將放棄使用硬件覆蓋,并始終使用GPU進行合成。不幸的是,禁用硬件覆蓋將導(dǎo)致功耗增加,這實際上僅用于調(diào)試某些類型的媒體應(yīng)用程序。解決這個問題的一種方法是使用帶有安全設(shè)置插件的Tasker等應(yīng)用程序,這樣在使用YouTube應(yīng)用程序時可以自動切換“禁用硬件覆蓋”選項。