W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
編寫:heray1990 - 原文: http://developer.android.com/training/wearables/watch-faces/performance.html
除了有好的 notification cards 和系統(tǒng)指示圖標(biāo)之外,我們還需要確保表盤的動(dòng)畫運(yùn)行流暢,服務(wù)不會(huì)執(zhí)行沒必要的計(jì)算。Android Wear 的表盤會(huì)在設(shè)備上一直運(yùn)行,所以表盤高效地使用電池顯得十分重要。
這節(jié)課提供了一些提示來加快動(dòng)畫的速度,測(cè)量和節(jié)省設(shè)備上的電量。
很多表盤由一張背景圖片及其它被轉(zhuǎn)換和覆蓋在背景圖片上面的圖形資源組成,例如時(shí)鐘指針和其它隨著時(shí)間移動(dòng)的設(shè)計(jì)組件。沒詞系統(tǒng)重新繪制表盤的時(shí)候,在 Engine.onDraw()
方法里面,這些圖像組件往往會(huì)旋轉(zhuǎn)(有時(shí)會(huì)縮放),詳見繪制表盤。
這些圖形資源越大,轉(zhuǎn)換它們所需的運(yùn)算量就越大。在 Engine.onDraw()
方法中轉(zhuǎn)換大的圖形資源會(huì)大大地減低系統(tǒng)運(yùn)行動(dòng)畫的幀率。
為了提升表盤的性能,我們需要:
在 Figure 1 中的時(shí)鐘指針例子可以將大小減小97%。
Figure 1. 可以剪裁多余像素的時(shí)鐘指針
這節(jié)內(nèi)容介紹的減小位圖資源的大小不僅提升了動(dòng)畫的性能,也節(jié)省了電量。
如果我們有經(jīng)常需要一起繪制的位圖,那么可以考慮將它們合并到同一個(gè)圖形資源中。在交互模式下,通常我們可以將背景圖片和計(jì)數(shù)標(biāo)記組合起來,從而避免沒詞系統(tǒng)重新繪制表盤時(shí),都去繪制兩個(gè)全屏的位圖。
當(dāng)使用 Canvas.drawBitmap() 方法繪制可縮放的位圖,我們可以使用 Paint 實(shí)例去設(shè)置一些選項(xiàng)。為了提升性能,使用 setAntiAlias()) 方法禁用反鋸齒,這是由于這個(gè)設(shè)置對(duì)于位圖沒有任何影響。
對(duì)于繪制在其它組件上的位圖資源,可以在同一個(gè) Paint 實(shí)例上使用 setFilterBitmap()) 方法來打開位圖濾鏡。Figure 2顯示了使用和沒使用位圖濾鏡的放大的時(shí)鐘指針。
Figure 2. 沒使用位圖濾鏡(左)和使用位圖濾鏡(右)
Note: 在低比特率的環(huán)境模式下,系統(tǒng)不能可靠地渲染圖片的顏色,從而不能保證成功地執(zhí)行位圖濾鏡。因此,在環(huán)境模式下,禁用位圖濾鏡。
每次重新繪制表盤時(shí),系統(tǒng)會(huì)調(diào)用 Engine.onDraw()
方法,所以為了提升性能,我們應(yīng)該只將用于更新表盤的重要的操作放到這個(gè)方法中。
可以的話,避免在 onDraw()
方法里處理下面這些操作:
通??梢栽?nbsp;Engine.onCreate()
方法中運(yùn)行上述這些操作。我們可以在 執(zhí)行Engine.onSurfaceChanged() 方法之前調(diào)整圖片大小。其中,該方法提供了畫布的大小。
為了分析表盤的性能,我們可以使用 Android Device Monitor。特別地,確保 Engine.onDraw()
實(shí)現(xiàn)的運(yùn)行時(shí)間是短的和調(diào)用是一致的。詳細(xì)內(nèi)容見使用 DDMS。
除了前面部分介紹的技術(shù)之外,我們還需要按照下面的最佳做法來降低表盤的電量消耗。
動(dòng)畫通常需要消耗大量計(jì)算資源和電量。大部分動(dòng)畫在每秒30幀的情況下看上去是流暢的,所以我們應(yīng)該避免動(dòng)畫的幀頻比每秒30幀高。
表盤的動(dòng)畫和內(nèi)容的小變化會(huì)喚醒 CPU。表盤應(yīng)該在動(dòng)畫之間讓 CPU 睡眠。例如,在交互模式下,我們可以每隔一秒使用動(dòng)畫的短脈沖,然后在下一秒讓 CPU 睡眠。頻繁地讓 CPU 睡眠,甚至短暫地,都可以有效地降低電量消耗。
為了最大化電池使用時(shí)間,謹(jǐn)慎地使用動(dòng)畫。即使閃爍動(dòng)畫在閃爍的時(shí)候也會(huì)喚醒 CPU 并且消耗電量。
在 Android Wear companion app 的 Settings > Watch battery 下,開發(fā)者和用戶可以看到可穿戴設(shè)備中不同進(jìn)程還有多少電量。
在 Android 5.0 中,更多關(guān)于提升電池使用時(shí)間的信息,請(qǐng)見 Project Volta。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: