2012-12-01 14 views
9

Android 4.0 önemli ölçüde yavaşladı ve Android'de 3.2 üzerinde bir uygulamayı test, bu SQLite veritabanı ile etkileşim ve ekrandaki sonuçlar göstermektedir. Animasyon ya da fantezi olmayan bir şeyim yok. Benim sahip olduğum veri kullanıcıya göstermek için çok sayıda ListViews var.Uygulamam ben geliştirilen

uygulaması için veritabanı fazla 300k satır olan somes tablolarla çok büyük. AsyncTask'ı veritabanındaki her etkileşimde kullanmaya çalıştık, ancak performansı optimize etmek için hala bazı noktalarımız var. Sorun şu ki, şirket bazı tabletleri Ice Cream Sandwich'e güncelledi ve uygulama, Petek'inkinden çok daha yavaştı. Aynı kodu, aynı db ile, iki cihazda, bir çalışan ICS ve diğeri Honeycomb ile yükledim. App 3.2 cihazında çok daha iyi performans gösterdi. Ayrıca <uses-sdk android:minSdkVersion="14" /> kullanmayı denedim ama daha iyi yapmadı.

Ben 4.0 üzerinde performansını optimize etmek için yapabileceği bir şey var mı? Bunun neden olduğunu ve bunun neden olabileceği bir şey varsa (4.0'da işe yaramayan bazı bileşenler ya da sınıflar) bunu da bilmek isterim.

Teşekkürler!

UPDATE: Uygulamamın ana ekranı için çözüm buldum. Ben yatay liste olarak çalışan bir parçasını temsil etmekte olan, bu verilerin büyük bir liste yüklenip LinearLayout bir sürü oluşturulan bir HorizontalScrollView scrollview içine takdim edilecekti. 'un bir widget'ını buldum ve listemi yüklemek için kullandım. Sadece bu uygulamayı daha hızlı yaptı. Ancak, ICS'de neden daha yavaş olduğuna dair cevabı bulamadım.

Ayrıca uygulamayı profillemeyi denedim, ancak yapılması çok zor bir şey, birçok bilgi var. Uygulamayı hızlandırmak için muhtemelen önümüzdeki haftalarda yapacağım. Bütün cevaplar ve yorumlar için teşekkürler!

+0

İki aygıtın her ikisinde de DDMS araçlarını kullanarak yığın boyutunu kontrol ettiniz mi? – Talha

+3

sonuçlara atlama önce, her iki cihazda (http://developer.android.com/tools/debugging/debugging-tracing.html) [uygulamanızı profili] darboğaz nerede olduğunu görmek gerekir. – Felix

+1

Bunu sordum çünkü daha önce aynı problemle karşılaştım. Bu nedenle, her bir android sürüm/cihazdaki /vsystem/build.prop tercihler dosyasında dalvik vm yığın boyutu ayarlanır. Tam tercih anahtarı dalvik.vm.heapsize. Değer megabayttır ve cihaz özelliklerine bağlıdır. Bu nedenle uygulamanız farklı cihazlarda farklı davranabilir. – Talha

cevap

İlgili konular