對(duì)手機(jī)而言,細(xì)微的卡頓是一種很主觀的感覺。為了將手機(jī)卡頓與否以一種客觀的形式“量化”,網(wǎng)上傳出了一種關(guān)于“玄學(xué)曲線”的傳說。那么,這種曲線究竟能否反映出手機(jī)的卡頓與否呢?
隱藏的開發(fā)者模式
每一款A(yù)ndroid手機(jī)的設(shè)置選項(xiàng)中都隱藏了一個(gè)功能,它就是“開發(fā)者選項(xiàng)”(又稱開發(fā)者模式)。這個(gè)功能的本意,是幫助軟件開發(fā)者進(jìn)行功能的調(diào)試和優(yōu)化。但是,該選項(xiàng)里面的很多功能,都能給我們帶來驚喜。
比如,很多品牌手機(jī)的USB調(diào)試模式就被隱藏在了開發(fā)者選項(xiàng)里,當(dāng)需要借助PC ROOT手機(jī),或是PC上的某些客戶端軟件與手機(jī)連接時(shí)都需要打開USB調(diào)試模式才能實(shí)現(xiàn)全部功能。此外,如果你想免費(fèi)快速提升手機(jī)操作的流暢度,將“窗口動(dòng)畫縮放”、“過渡動(dòng)畫縮放”和“動(dòng)畫程序時(shí)長(zhǎng)縮放”從默認(rèn)的1x修改為0.5x即可(圖1),簡(jiǎn)單又快捷。
而引言中提到的“玄學(xué)曲線”,就是開發(fā)者選項(xiàng)中隱藏的功能之一,也是用來幫助Android開發(fā)者找到界面中渲染問題的小工具。
怎么激活玄學(xué)曲線
需要注意的是,不同品牌的手機(jī)對(duì)開啟“玄學(xué)曲線”的選項(xiàng)名稱可能略有區(qū)別?!靶W(xué)曲線”的英文原名是“Profile GPU Rendering”,而國(guó)內(nèi)手機(jī)品牌會(huì)將其翻譯為“GPU顯示配置文件”或“GPU呈現(xiàn)模式分析”。
以ZUK手機(jī)為例,想激活“玄學(xué)曲線”,就需要找到并點(diǎn)擊開發(fā)者選項(xiàng)中的“GPU呈現(xiàn)模式分析”,并將其設(shè)定在“在屏幕上顯示為條形圖”(圖3)。然后,你就會(huì)發(fā)現(xiàn)手機(jī)屏幕上出現(xiàn)了無數(shù)道彩色的線條,由這些線條組成的波形圖,就是本文的主題“玄學(xué)曲線”了(圖4)。
當(dāng)應(yīng)用程序在運(yùn)行時(shí),我們會(huì)看到屏幕下方出現(xiàn)了一排由紅、橙、藍(lán)三色組成的柱狀圖(由無數(shù)道線條組成),從左到右動(dòng)態(tài)地顯示。每一道垂直的線條代表一幀的渲染,隨著需要渲染的幀數(shù)越來越多,我們也就可以觀察到這段時(shí)間幀率的變化了。
玄學(xué)曲線中的標(biāo)記線
Android系統(tǒng)默認(rèn)將每秒60幀設(shè)定為滿幀,按照1秒÷60幀的公式可以得到16ms(毫秒)時(shí)為滿幀的界限。在玄學(xué)曲線中,有一道橫向顯示且貫穿整個(gè)屏幕的綠色線條,它就代表著16ms的標(biāo)記線(圖5)。理論上講,只要有一道豎線超過了綠色的標(biāo)記線,就代表著你看到的動(dòng)畫有丟幀現(xiàn)象產(chǎn)生。
不過,理論和實(shí)際總是存在差異的(圖6),所以盲目迷信“只要三色玄學(xué)曲線越過標(biāo)記線就卡”顯然是有失偏頗的。
玄學(xué)曲線中的彩色線
在“玄學(xué)曲線”中,紅色的線條代表執(zhí)行時(shí)間,也就是CPU將所需要繪制的任務(wù)交給GPU,再由GPU渲染到屏幕上所用的時(shí)間。因此,如果紅線超過了綠色標(biāo)記線并不一定代表卡頓,因?yàn)楫?dāng)我們上網(wǎng)時(shí),網(wǎng)頁(yè)上的圖片會(huì)根據(jù)網(wǎng)速的快慢,刷新(顯示)出來的速度也是有快有慢,很多圖片都需要等待幾秒才能完全顯示,你能說手機(jī)卡頓了幾秒嗎?
橙色線部分代表處理時(shí)間,也就是CPU告訴GPU渲染已經(jīng)完成的時(shí)間。但有時(shí)候當(dāng)GPU的任務(wù)太多時(shí),往往不能第一時(shí)間反饋給CPU已經(jīng)獲悉渲染完成的信息。所以,橙色線越過綠色標(biāo)記線,只能代表GPU當(dāng)前占用率太高,也不見得出現(xiàn)了卡頓。
藍(lán)色線代表繪制時(shí)間,就是GPU完成CPU交給的渲染任務(wù)的時(shí)間。在玄學(xué)曲線中,只有藍(lán)色線超過綠色標(biāo)記線,才算真正抓到了丟幀卡頓的證據(jù)。
看到這里,相信你對(duì)玄學(xué)曲線已經(jīng)有了基本的認(rèn)識(shí),它們存在的初衷是幫助開發(fā)者調(diào)試,通過對(duì)三色線的變化進(jìn)行有針對(duì)性的優(yōu)化。一套系統(tǒng)、一款應(yīng)用,只有在運(yùn)行的絕大多數(shù)時(shí)間都能保持三色線不越過標(biāo)記線才算完美。
開發(fā)者選項(xiàng)的功能有待挖掘
除了本文涉及的提升流暢度、判斷流暢度的玄學(xué)曲線,Android系統(tǒng)的開發(fā)者模式還隱藏了無數(shù)有趣的功能。比如,很多視力存在缺陷的色盲、色弱用戶,可以通過“模擬顏色空間”,讓屏幕的色彩按照自己的實(shí)際情況改變色彩的構(gòu)成(圖7),以便更好地看清屏幕上的內(nèi)容。