Android uygulamanın boyutunu küçültmenin yolları
Uygulamanın boyutu büyüdükçe indirme oranı düşer, özellikle mobil veriyle indiren kullanıcılar vazgeçebilir. İyi haber şu: birkaç ayarla boyut çoğu zaman ciddi oranda küçülür.
1. APK yerine Android App Bundle (AAB)
Google Play'e AAB yüklediğinde mağaza, her cihaza yalnızca ona uygun kaynakları (ekran yoğunluğu, işlemci mimarisi, dil) içeren bir paket üretir. Kullanıcının indirdiği boyut, tek bir evrensel APK'ya göre genelde belirgin şekilde küçüktür. Play'e yeni uygulama gönderirken zaten AAB zorunludur.
2. Kod küçültme ve kaynak temizleme
build.gradle dosyasında yayın sürümü için:
android {
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
R8; kullanılmayan sınıf ve metotları siler, isimleri kısaltır. shrinkResources kullanılmayan görselleri ve düzenleri paketten çıkarır. Yansıma (reflection) kullanan kütüphaneler için proguard-rules.pro dosyasına kural eklemen gerekebilir; yayından önce mutlaka sürüm derlemesini test et.
3. Görseller
- PNG yerine WebP kullan. Android Studio'da görsele sağ tıklayıp "Convert to WebP" diyebilirsin.
- Basit ikonlar için vektör (VectorDrawable) kullan; tek dosya her yoğunlukta çalışır.
- Büyük arka plan görsellerini ve videoları pakete koymak yerine gerektiğinde indir.
4. Kütüphaneler
Boyutun büyük kısmı genellikle bağımlılıklardan gelir. Sadece bir yardımcı fonksiyon için koca bir kütüphane eklemek pahalıya patlar. Android Studio'da Build > Analyze APK ile paketi açıp neyin ne kadar yer kapladığını görebilirsin.
5. Native kütüphaneler ve diller
- NDK kullanan kütüphaneler her işlemci mimarisi için ayrı
.sodosyası taşır. AAB bunu cihaza göre ayırır. - Uygulama yalnızca Türkçe ve İngilizce destekliyorsa, kütüphanelerden gelen diğer dilleri çıkarabilirsin:
android {
defaultConfig {
resourceConfigurations += ["tr", "en"]
}
}
6. İsteğe bağlı modüller
Az kullanılan büyük özellikleri (örneğin bir düzenleyici veya AR modülü) Play Feature Delivery ile ayrı modül yapıp yalnızca gerektiğinde indirebilirsin.
Kontrol listesi
- AAB ile yayınlıyorum
-
minifyEnabledveshrinkResourcesaçık, sürüm derlemesi test edildi - Görseller WebP veya vektör
- Analyze APK ile en büyük 5 kalemi inceledim
- Gereksiz dil kaynaklarını çıkardım