Android Wear因為自身的局限性,所以我們在寫開發(fā)Android Wear程序的時候一定要考慮到性能的流暢以及電池的消耗,目前為止,我自己也沒有做過很強大的Android Wear程序,表盤的開發(fā)也才進入初級程序,但是大概的開發(fā)過程已經(jīng)了解,所以今天先在這里把把官方文檔的優(yōu)化翻譯成中文提供給大家參考。
基礎(chǔ)優(yōu)化
這部分包含了當(dāng)表盤不工作時為了提高效率的最好的實踐方法.
使用表盤面服務(wù)的回調(diào)WatchFaceService.Engine
確保你的表盤只在運轉(zhuǎn)時執(zhí)行計算;使用回調(diào)函數(shù)WatchFaceService.Engine.最好用使用以下的方法去判斷是否這表盤可用。
onVisibilityChanged(boolean)
isVisible()
或者,使用同一類的下列方法(WatchFaceService.Engine)
onCreate()
onDestory()
在數(shù)據(jù)API接口使用偵聽器注冊
為了知道事件變化,使用在DataApi.addListener注冊了的真實收聽者.例如,看Syncing DataItems.
不要使用WearableListenerService去收聽事件,因為它一直活躍無論表盤是否運行.為了得到更多信息,請看Deprecation of BIND_LISTENER with Android Wear APIs.
不要再安卓系統(tǒng)顯示器上注冊廣播收音機來收聽事件,例如,時區(qū)變化、電池事件等.因為BroadcastReceiver被呼叫無論這個表盤是否運轉(zhuǎn),你可以使用registerReciver里面的方法去注冊廣播.
監(jiān)控能耗
Android Wear company app讓開發(fā)者和使用者理解電池在在穿戴裝備中的不同環(huán)節(jié)中的被消耗程度(根據(jù)設(shè)定>手表電池)
對于信息的功能在安卓5.0細節(jié)介紹了信息,幫助你提高電池壽命,請看Project Volat.
動畫的最佳實踐
這個環(huán)節(jié)最好的實踐就是幫助減少動畫的能量消耗.
減少動畫制作的幀頻
動畫制作通常計算昂貴還會消耗非常多的能量,大多數(shù)動畫制作還會每秒浪費30幀,所以你要避免高幀頻運行動畫.
讓CPU在動畫之間休息
表盤的動畫和小的變動都會喚醒CPU,你的表盤應(yīng)當(dāng)在動畫時讓CPU沉睡.例如,你可以使用動畫每秒短脈沖在相互影響模式時然后下一秒讓CPU沉睡.經(jīng)常讓CPU沉睡,即使很短暫,可以顯著的減少能量消耗.
為了最大化電池生命,保守地使用動畫,盡管小的閃動也能喚醒CPU,然后就會消耗電池的壽命.
減少你的位圖資資源尺寸
許多由背景形象和其他圖形資源組成的表盤被轉(zhuǎn)換和重疊在背景形象的頂端,例如鐘針和其他所設(shè)計的基礎(chǔ)元素隨時間推移.這些基礎(chǔ)元素經(jīng)常在Engine.onDraw()內(nèi)部旋轉(zhuǎn)(某時刻不動)每次系統(tǒng)重畫表盤,被描述在Draw Your Watch Face.
圖形資源越大,轉(zhuǎn)變他們的資源計算越昂貴.轉(zhuǎn)變大的圖形資源在Engine.onDraw()方法顯著的減少了系統(tǒng)運行你的動畫的幀頻數(shù).
為了增強表盤的執(zhí)行:
不要使用超過你需要的圖形資源
移除邊緣周圍的額外透明像素
圖1左側(cè)的示例時鐘指針的尺寸可以減小97%。

減少這個部分位圖資源的尺寸不止增強了你的動畫的執(zhí)行,也節(jié)約了電量.
聯(lián)系位圖資源
如果你的位圖經(jīng)常被畫在一起,考慮把他們放在一個圖形資源,你可以經(jīng)常聯(lián)系背景形象在相互影響的模式下,每次系統(tǒng)重畫表盤用刻度線避免畫出兩條滿屏位圖.
禁用反走樣繪制時標(biāo)位圖
當(dāng)你畫一個按比例縮小的Canvas文件時使用Canvas.drawBitmap()方法,你可以提供Paint
當(dāng)你畫一個縮放位圖使用Canvas畫布對象。drawbitmap()方法,你可以配置多個選項提供油漆的實例。為了提高性能,使用setAntialias()禁用反走樣方法,因為這個方法沒有任何效果上的位圖。
使用位圖過濾
為了位圖資源,你畫了其他頂端的基礎(chǔ)元素。為了讓位圖過濾在相同的Paint實例使用setFilterBitmap()方法.圖2展現(xiàn)了一個宏觀的視角有和沒有位圖過濾。

提示:在低度環(huán)境模式,這個系統(tǒng)沒有使這個形象的顏色位圖過濾運行成功.當(dāng)環(huán)境模式運行,對位圖過濾不利。
在畫圖方法以外的更多昂貴操作
這個系統(tǒng)叫做Engine.onDraw()方法每當(dāng)它重畫你的表盤,你只能按嚴(yán)格的要求操作去更新你的表盤這個方法來增強運行.
裝入映像和其他資源
調(diào)整圖像大小
分配對象
執(zhí)行計算的結(jié)果不會在幀數(shù)間變換
你可以經(jīng)常執(zhí)行這些操作也可以在Engine.onCreate()上,你可以提前調(diào)整圖像大小在Engine.onSurfaceChanged()這個為你提供了畫布的尺寸
為了分析你表盤的性能,使用安卓設(shè)備監(jiān)測,特別是,確保執(zhí)行時間在你的Engine.onDraw()安裝很短暫和一致的調(diào)用。更多的信息,請看Using DDMS.