關(guān)于為什么使用SurfaceView,我感覺說的太牽強了,和網(wǎng)上的資料基本都是一個說法,個人認為,關(guān)于為什么使用SurfaceView主要有兩點:
一是,如果屏幕刷新頻繁,onDraw方法會被頻繁的調(diào)用,onDraw方法執(zhí)行的時間過長,會導致掉幀,出現(xiàn)頁面卡頓。而SurfaceView采用了雙緩沖技術(shù),提高了繪制的速度,可以緩解這一現(xiàn)象。
二是,view的onDraw方法是運行在主線程中的,會輕微阻塞主線程,對于需要頻繁刷新頁面的場景,而且onDraw方法中執(zhí)行的操作比較耗時,會導致主線程阻塞,用戶事件的響應受到影響,也就是響應速度下降,影響了用戶的體驗。而SurfaceView可以在自線程中更新UI,不會阻塞主線程,提高了響應速度。
我認為第二點,才是為什么使用SurfaceView的主要原因,個人見解,網(wǎng)上的資料,太千篇一律了。