Bellek, tüm yazılım geliştirme ortamlarında değerli bir kaynaktır ancak fiziksel belleğin genellikle kısıtlı olduğu mobil işletim sistemlerinde daha da değerlidir. Bu durum özellikle Android (Go sürümü) ile yaygın olarak bulunan, yerel olarak düşük bellek kapasiteli cihazlar için geçerlidir. Bu ortamlarda sorunsuz çalışmasını sağlamak için uygulamanızda belleği optimize etmenin birkaç yolu vardır.
En iyi uygulamalar
Önbellek belleğini serbest bırakma
Arka plan işlemlerinin normal bir ortamda olduğu gibi çalışmaya devam etmesini sağlamak için yeterli bellek olmayabilir. Bu durumda, uygulamanızın işlemindeki gereksiz belleği düzeltmek için onTrimMemory()
'i kullanabilirsiniz. Uygulamanızın mevcut kırpma düzeyini en iyi şekilde belirlemek için ActivityManager.getMyMemoryState(RunningAppProcessInfo)
kullanın ve gereksiz kaynakları optimize edin veya kırpın. Örneğin, uygulamanızın düşük bellek nedeniyle yaşanan kilitlenme veya ANR'ler ile karşılaşma sayısını azaltmak için ifadeler, arama, önbelleği görüntüleme veya açılabilir uzantılardan kaynaklanan gereksiz bellek kullanımını kırpabilirsiniz.
Görev planlama
Eşzamanlı planlama, yoğun bellek kullanan birden fazla işlemin paralel olarak çalışmasına yol açarak uygulamanın en yüksek bellek kullanımını aşan kaynaklar için rekabete yol açabilir. Çeşitli kaynak kısıtlamalarıyla karşılaşabilecek cihazlarda çalışmak için işlemleri doğru ileti dizisi havuzundaki yoğun CPU kullanan ve düşük gecikmeli görevlere ayırarak kaynakları uygun şekilde dağıtmaya çalışın.
Bellek sızıntıları
Uygulamanızdaki bellek sızıntılarını bulmaya ve azaltmaya yardımcı olması için özellikle Android Studio'daki Memory Profiler ve Perfetto gibi çeşitli araçlar vardır. Uygulamanızın diğer bileşenlerinin sistem üzerinde ek baskı olmadan çalışmasını sağlamak amacıyla olası bellek sorunlarını tanımlamak ve düzeltmek için bu araçları kullanmanız önemle tavsiye edilir.
Diğer ipuçları
- Büyük resimler veya çekilebilir öğeler, uygulamalarda daha fazla bellek kullanır. Bellek kullanımını azaltmak için büyük veya tam renkli bit eşlemleri tanımlayın ve optimize edin.
- GIF'ler çok fazla bellek kullandığından, Android (Go sürümü) için içerik oluştururken uygulamanızda GIF seçenekleri belirlemeyi deneyin.
- WebP, pngcrush ve pngquant gibi araçları kullanarak PNG dosya boyutlarını resim kalitesini kaybetmeden küçültebilirsiniz. Tüm bu araçlar, algılanan resim kalitesini korurken PNG dosya boyutunu azaltabilir.
- aapt aracı, derleme işlemi sırasında kayıpsız sıkıştırma ile
res/drawable/
öğesine yerleştirilen resim kaynaklarını optimize edebilir. Örneğin, aapt aracı, 256'dan fazla renk gerektirmeyen gerçek renkli bir PNG dosyasını, renk paletine sahip 8 bit PNG'ye dönüştürebilir. Bu işlem, eşit kalitede bir görüntüyle karşılaştırılır ancak bellekte daha az yer kaplar.