2010-08-20 23 views
5

Aynı programı iki yolla yazdım.SurfaceView vs Özel Görünüm (Görünüm'den genişletilmiş). SurfaceView daha yavaş, Neden?

Bir Surfaceview kullanarak, diğeri özel bir görünüm kullanarak. Android SDK geliştirme kılavuzuna göre, yüzey görünümünü kullanmak daha iyidir çünkü grafikleri işlemek için ayrı bir iş parçacığı oluşturabilirsiniz. SDK geliştirme rehberi, geçersiz çağrılarla özel bir görünüm kullanmanın yalnızca daha yavaş animasyonlar, daha az yoğun grafikler için iyi olduğunu iddia ediyor.

Ancak, benim basit uygulamasında, geçersiz kılmak çağrıları ile özel bir görünüm kullanarak daha hızlı işlemek gibi görünüyor.

Bunun hakkında ne düşünüyorsunuz/düşününüz?

TouchEvent kodum tamamen aynıdır ve çizim kodum tam olarak aynıdır. Tek fark, kullanıcı arabiriminde birinin diğeri ise çizimi işlemek için bir sırtı kullanmaktır.

cevap

2

SurfaceView, çizim için 2 arabelleğe çalışmanızı sağlar, özel görünümünüz nasıl olur?

Başka bir şey: Doktorun, daha yavaş animasyonlar/daha az yoğun grafikler üzerinde invalidate hızlı çalıştığını söylediniz. "Basit uygulamanız" ne kadar yoğun? Bir stres testi yapmaya çalışmalı ve aynı zamanda, tek bir parçanın dokunmatik girişinizi nasıl işlediğini hesaba katmalısınız.

Oyunda 3 dikiş var. Biri oyun mantığı, biri çizim için ve daha sonra "normal" UI iş parçacığı için ...

+0

Uygulamam dokunmatik girişleri alır ve dokunmatik ekranda dolaşırken parmağınızı takip eden bir daire çizer. Uygulamanın yüzey görünümü sürümü ile biraz daha fazla bir gecikme dikkat edin. Uygulamamın, kullanıcı arabirimi girişi ve grafik işlenmesi açısından yoğun olmadığını söyleyebilirim. –

+0

Öyleyse aksini tanımlarım. Gerçek performansı belirlemek için, yüzey işleme için dokunma işleme ve grafiği farklı konulara ayırmalısınız. Sonra gerçek sonuçlar elde edersiniz. Ayrıca çizmek için bir daire daha yapın, çünkü yoğun daha fazlası ... Hangi cihazı test ettiniz? – WarrenFaith

İlgili konular