Thread Starter
#1
Glide, Android geliştirmede en sık kullanılan görsel yükleme kütüphanelerinden biridir ve önbellekleme (cache) sistemi, uygulamanın performansını doğrudan etkiler. Ancak, varsayılan cache yapısı genellikle ihtiyaçlara tam uyum sağlamayabilir. Bu noktada, Glide cache mimarisini nasıl özelleştirebileceğimiz önemli hale gelir.
İlk olarak, Glide'ın yerleşik önbellek mekanizmasını anlamak gerekir. Glide, iki ana cache alanına sahiptir:
- Memory Cache (Hafıza Ön Belleği): Uygulama çalışma sırasında hızlı erişim için kullanılır.
- Disk Cache (Dizin Ön Belleği): Görsellerin kalıcı olarak depolandığı alan. Bu, uygulama kapandığında bile görsellerin tekrar indirilmesine gerek kalmadan hızlı yükleme sağlar.
Varsayılan olarak, Glide bu cache'leri otomatik yönetir, ancak ihtiyaç duyulduğunda özelleştirme mümkündür. Örneğin, disk cache boyutunu veya stratejisini değiştirmek için GlideBuilder kullanılır.
Kod örneği olarak, Glide konfigurasyonunu şu şekilde özelleştirebilirsiniz:
CODE
1234567891011121314151617181920212223
import com.bumptech.glide.Glide
import com.bumptech.glide.GlideBuilder
import com.bumptech.glide.load.engine.cache.LruResourceCache
import com.bumptech.glide.load.engine.cache.DiskLruCacheWrapper
import android.content.Context
fun customizeGlide(context: Context): Glide {
val builder = GlideBuilder()
// Disk cache boyutunu 100MB yapma
builder.setDiskCache {
DiskLruCacheWrapper.create(
File(context.cacheDir, "glide_cache"),
1024 * 1024 * 100 // 100MB
)
}
// Memory cache boyutunu artırma
builder.setMemoryCache(LruResourceCache(1024 * 1024 * 20)) // 20MB
return Glide.get(context).apply {
setMemoryCache(LruResourceCache(1024 * 1024 * 20))
setDiskCache(DiskLruCacheWrapper.create(File(context.cacheDir, "glide_cache"), 1024 * 1024 * 100))
}
}
Ayrıca, Glide’ın cache stratejisini de değiştirebilirsiniz. Örneğin, belirli durumlarda cache’e alınmak istenmeyen görseller için diskCacheStrategy() metodunu kullanabilirsiniz. Bu sayede sadece önbelleğe alınmasını istediğiniz görselleri belirleyebilirsiniz.
Son olarak, cache'in temizlenmesi veya yenilenmesi gibi işlemleri de manuel olarak yapabilirsiniz. Glide,
Glide.get(context).clearMemory() veya clearDiskCache() metodlarıyla önbelleği sıfırlama imkanı sunar. Bu özelleştirmeler, özellikle büyük uygulamalarda, bellek ve disk kullanımı üzerinde daha kontrollü ve optimize edilmiş bir önbellekleme stratejisi sağlar.
İşte, Glide cache mimarisini ihtiyaçlara göre detaylıca yapılandırmak, uygulama performansını ve kullanıcı deneyimini ciddi ölçüde artırabilir.
