我有紅色的表面視圖渲染速度更快,但需要比視圖更多的資源。Android,關於surfaecview和視圖
從我的測試,我想這代碼:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
Log.i("OnDraw","ping");
invalidate();
}
一個是surfaceview類渲染,而另一種是視圖類呈現,在他們兩個有相同的代碼。 從日誌聊天中,我可以看到來自Log.i方法的消息在視圖類中刷新得更快 - 每個視圖之間的延遲大約爲70毫秒,而在surfaceView的情況下,刷新速度更慢 - 約100毫秒之間的延遲。
那麼...什麼給了?
基於刷新時間,我猜你在模擬器中運行?我對Android上2D繪圖應用的建議:在真實手機上運行它們進行調試和分析。真實手機的性能與仿真器不同。在開始優化性能之前,請嘗試在手機上運行它 - 根據我的經驗,使用SurfaceView在手機上進行2D繪圖性能非常好。我知道這並不能真正回答你的問題,但我想我會給你一些建議(軼事),因爲我最近走了這條路。 – Ivan
這也是我的猜測,我注意到在手機和模擬器上的性能存在差異,我想我需要安裝我的手機直接在他身上進行調試以查看我的自我:) –