Android提供多種動畫機制, 從面相對象的方式到直接實現底層onDraw的方式, 給予了足夠的控件實現但願的效果, 緩存
不管時使用哪一種方式實現動畫, 都要謹慎的處理動畫的兩個狀態, 開始和結束動畫
須要關注的問題有:對象
1 動畫開始的時候是否須要從新初始化內存?內存
對於須要重複展現的動畫, 應當避免每次都new新的內存, 不然在動畫展現過程, 內存會不斷增長, 而gc合適回收, 是不肯定的.gc
也許當gc時, 你已經在OOM的邊緣了.cpu
2 動畫開始時是不是從某個中間狀態開始的?new
動畫從某個中間狀態開始, 應當避免中間狀態之前的運算, 沒什麼別的理由, 省CPU, 省電.底層
3 動畫結束後是否能夠中止動畫的運算?控件
經過繪製畫布實現的動畫, 在動畫結束後, 要謹慎確認畫布是否在重複繪製最後一個幀, 這個是隱晦的,內存和cpu殺手
4 動畫結束後是否須要釋放動畫過程當中運算的結果?
這也是針對重複展現動畫的, 某些中間結果若是能夠複用, 就應當緩存下來, 提供動畫的效果, 減小cpu消耗