2011-05-03 10 views
8

Android 2.3, 2.1 ve 2.2'den daha küçük VM bütçesine sahip gibi görünüyor. Daha yeni işletim sisteminin daha kısıtlayıcı olduğunu düşündüğümden, teknolojinin gelişmesi nedeniyle bir uygulama için daha büyük bir bellek ayırma (VM bütçesi) olması gerektiğini umuyorum.Android 2.3, 2.1 ve 2.2'den daha düşük VM bütçesine sahip mi?

Bu nedenle, şu anda yapıyorum bir grafik görüntü işleme uygulaması için önemli olan büyük bitmap görüntülerinde bellek tutamıyorum. Ama 2.1 ve 2.2'de iyi çalışıyor.

Resmimi 2.3 ile sığacak şekilde inScale ile ölçeklendirirsem, çıktının kalitesini kaybederim.

Bu farkı kendi deneyiminize göre 2.3 ile önceki sürümleri arasında nasıl kullanacağınıza dair herhangi bir tavsiyeniz var mı?

cevap

10

Android 2.3'ün VM bütçesi aslında daha yüksek (32 MB.) Fark şu ki, Android 2.3 artık 16 bit yerine varsayılan olarak 32 bitlik (ARGB8888) tüm bitmap'leri yükler.

fazla bilgi için http://www.curious-creature.org/2010/12/04/gingerbread-and-32-bits-windows/ ve http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/ görün

+1

cevap, benim uygulamada ben yüklemek için veya argb_8888 olarak oluşturulmalıdır görünümü ve tüm bitmapler belirledik olabilir kadar iyi. İki cihazda 2.2 para cezası, ancak 2.3.3 cihazında hafıza dışında çalışır. İlk önce 1900x2500 bitmap yüklüyüm, bu her ikisinde de çalışıyor, daha sonra ekrandan daha büyük olmayan üç küçük bitmap oluşturuyorum, ancak 2.3.3, büyük olan yüklendikten sonra ekran boyutu bitmapinin dörtte birini oluştururken bile bellekte kalıyor. Buna neden olabilecek başka bir şey olup olmadığını merak ediyorum - statik bitmap'ler hakkında, 2.3 onları farklı şekilde ele alıyor mu? – Lumis

İlgili konular