Uygulama boyutunu küçültme

Küçük uygulama boyutu, özellikle ağ bağlantısı zayıf olan veya ağ hızlarının düşük olduğu gelişmekte olan pazarlarda indirme başarısıyla doğrudan ilişkilidir. Bu da uygulama kullanım oranlarının düşmesine neden olarak kitlenizin kapsamını ve erişimini azaltır. Ancak, uygulamanızın boyutunu küçültmenin çeşitli yolları vardır.

En iyi uygulamalar

Uygulamayı Android App Bundle olarak yükleyin

Google Play'de yayınlarken uygulama boyutundan anında tasarruf sağlamanın en kolay yolu, uygulamanızı Android App Bundle olarak yüklemektir. Android App Bundle, uygulamanızın tüm derlenmiş kodunu ve kaynaklarını içeren, APK oluşturmayı ve Google Play'de imzalamayı erteleyen yeni bir yayınlama biçimidir.

Çalışma zamanı kodu boyutunu küçültme

Uygulamanızın çalışma zamanında kullanmadığı kodları (ör. büyük sınıflar veya otomatik oluşturulan kodlar) kontrol edin. R8 gibi kod optimize ediciler, kod boyutunu optimize etmeye ve küçültmeye yardımcı olabilir ancak çalışma zamanı sabitleriyle korunan kodla başlayamaz. Çeşitli optimizasyon araçlarından en iyi şekilde yararlanmak için kontrol işaretlerini derleme zamanı sabitleriyle değiştirin. Gradle yapılandırma dosyanızda kod ve kaynak daraltmayı etkinleştirebilirsiniz:

android {
    buildTypes {
        getByName("release") {
            isMinifyEnabled = true
            isShrinkResources = true
        }
    }
}

Gereksiz düzenleri kaldırın

Kullanılmayan düzenleri küçük kullanıcı arayüzü değişiklikleriyle birleştirin ve genel uygulama kodu boyutunu azaltmak için gereksiz düzenleri kaldırın. Ayrıca, mümkün olduğunda düzenleri ve görünümleri dinamik olarak oluşturabilirsiniz. Böylece statik şablonlar çizmekten kurtulabilir ve teknik ek yük olmadan alternatif düzenler uygulayabilirsiniz.

Sık kullanılmayan özellikleri tekrar değerlendirin

Özellikle günlük etkin kullanıcı sayısı (GEKS) metrikleri düşük olan özellikleri devre dışı bırakarak Android (Go sürümü) için optimizasyon yapın. Buna örnek olarak karmaşık animasyonların, büyük GIF dosyalarının veya uygulamanın başarısı için gerekli olmayan diğer estetik eklemelerin kaldırılması verilebilir.

Dinamik yayınlama özelliğini kullanma

Play Özellik Delivery, uygulama paketlerinin gelişmiş özelliklerini kullanarak uygulamanızın belirli özelliklerinin koşullu olarak sunulmasına veya isteğe bağlı olarak indirilmesine olanak tanır. Özel sunum için özellik modüllerini kullanabilirsiniz. Özellik modüllerinin benzersiz bir avantajı, uygulamanızın farklı özelliklerinin Android 5.0 (API düzeyi 21) veya sonraki sürümleri çalıştıran cihazlara nasıl ve ne zaman indirileceğini özelleştirebilme imkanıdır.

Çevrilebilir dize boyutunu küçült

Uygulamanızın ihtiyaç duymadığı alternatif kaynak dosyalarını kaldırmak için Android Gradle resConfigs özelliğini kullanabilirsiniz. Dil kaynakları (ör. AppCompat veya Google Play Services) içeren bir kitaplık kullanıyorsanız uygulamanız, uygulama çevirisinden bağımsız olarak kitaplık mesajları için çevrilmiş tüm dil dizelerini içerir. Yalnızca uygulamanızın resmi olarak desteklediği dilleri kullanmaya devam etmek istiyorsanız bu dilleri resConfig özelliğini kullanarak belirtebilirsiniz. Belirtilmemiş dillerle ilgili tüm kaynaklar kaldırılır.

Dil kaynaklarınızı yalnızca İngilizce ve Fransızca olarak sınırlamak için defaultConfig öğesini aşağıda gösterildiği gibi düzenleyebilirsiniz:


android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}

Seçmeli çeviri kullan

Belirli bir dize, uygulamanın kullanıcı arayüzünde görünmüyorsa çevirmeniz gerekmez. Hata ayıklama, istisna mesajları veya URL'ler için kullanılan dizeler, kaynaklarda değil koddaki dize değişmez değerleri olmalıdır.

Örneğin, URL'leri çevirmeniz gerekmez.

<string name="car_frx_device_incompatible_sol_message">
  This device doesn\'t support Android Auto.\n
  &lt;a href="https://support.google.com/androidauto/answer/6395843"&gt;Learn more&lt;/a&gt;
</string>

< ve > için kaçış karakterleri olduklarından &lt; ve &gt adlarını tanıyabilirsiniz. Burada bunlara gereklidirler çünkü <string> etiketinin içine <a> etiketi koymanız durumunda Android kaynak derleyicisi etiketi tanımadığı için bunları bırakır. Ancak bu, HTML etiketlerini ve URL'yi 78 dile çevireceğiniz anlamına gelir. Bunun yerine, HTML'yi kaldırabilirsiniz:

<string name="car_frx_device_incompatible_sol_message">
         This device doesn\'t support Android Auto.
</string>

Yerel ikili programları yaygın bağımlılıklarla birleştirme

Uygulamanızda yaygın temel bağımlılıklara sahip farklı Java Yerel Arayüzü (JNI) uygulamaları varsa çeşitli ikili programlar yedek bileşenlerle APK boyutunu büyütmektedir. Java ve JNI dosyalarını ayrı tutarken birkaç JNI ikili kodunu tek bir JNI ikili dosyası halinde birleştirebilirsiniz. Bu, APK'nızın boyutunu önemli ölçüde küçültebilir.