Bazı ülkelerdeki veri planlarının maliyeti, normal bir kullanıcının aylık gelirinin% 10'undan fazla olabilir. Yani uygulamanızın indirme boyutunu en aza indirmek ve kullanıcının, uygulamanızın verileri nasıl kullanacağını kontrol etmesine izin vermek, birçok kullanıcıya büyük ve somut bir fayda sağlayabilir. İndirme boyutunu en aza indirmek, bazı cihazlarda nadir bir kaynak olan dahili depolama alanında yer tasarrufu da sağlamaya yardımcı olur.
Burada, uygulamanızın hem ağ üzerinde hem de dahili depolamada kullandığı veri miktarını optimize etmenize yardımcı olacak bazı stratejiler bulabilirsiniz.
Uygulama boyutunu küçültme
Uygulama boyutunu küçültmek, kullanıcılarınızın hem ağ verileri hem de dahili depolama açısından daha az veri tüketmesine yardımcı olmanın temel yollarından biridir. Bu bölümde, uygulama boyutunu küçültmeye yönelik çeşitli yaklaşımlar açıklanmaktadır.
APK grafik öğesinin boyutunu küçültme
- Grafik öğeler genellikle APK'nın boyutuna en çok katkıda bulunan öğelerdir. Bunları optimize etmek indirme işlemlerinin sayısını azaltabilir, dolayısıyla kullanıcılar için yükleme sürelerini kısaltabilir.
- Simge gibi grafik öğeler için Ölçeklenebilir Vektör Grafiği (SVG) biçimini kullanın. SVG resimleri, bit eşlem grafiklerine kıyasla çok küçüktür ve çalışma zamanında herhangi bir çözünürlükte oluşturulabilir. Android Destek Kitaplığı, Android 2.1'e (API düzeyi 7) ilişkin vektör kaynakları için geriye dönük uyumlu bir uygulama sağlar. Bu Medium yayınıyla vektörleri kullanmaya başlayın.
- Fotoğraflar gibi vektör olmayan görüntülerde, görüntü yükleme sürelerini azaltmak ve ağ bant genişliğinden tasarruf etmek için WebP kullanın. WebP'nin, en azından aynı resim kalitesinde, PNG ve JPG muadillerine göre daha küçük dosya boyutlarına neden olduğu kanıtlanmıştır. WebP, kayıplı ayarlarda bile orijinal resimle neredeyse aynı bir görüntü oluşturabilir. Android, Android 4.0'dan (API düzeyi 14: Ice Cream Sandwich) ve Android 4.2'den (API düzeyi 17: Jelly Bean) kayıpsız, şeffaf WebP desteğine sahiptir.
- Birden fazla yoğunlukta çok sayıda büyük resminiz varsa APK'nızı yoğunluğa göre bölmek için Birden fazla APK desteği özelliğini kullanabilirsiniz. Bu sayede belirli yoğunluklara göre hedeflenmiş derlemeler elde edilir. Böylece düşük yoğunluklu cihazlara sahip kullanıcıların, kullanılmayan yüksek yoğunluklu öğeleri indirme cezası almak zorunda kalmazsınız.
- APK boyutunu küçültme hakkında daha fazla bilgi için APK Boyutunu Küçültme ve Kodunuzu ve Kaynaklarınızı Küçültme konularına bakın. Ayrıca, bu Medium yayını serisinde APK boyutunu küçültmeyle ilgili ayrıntılı bir kılavuz bulabilirsiniz.
Kod boyutunu küçült
- Android projenizdeki her kitaplık, APK'ya kullanılmayan olası kodlar ekliyor. Tüm kitaplıklar mobil uygulamalarda kullanılmak üzere tasarlanmadığından harici kitaplıkları kullanırken özellikle dikkatli olun. Uygulamanızın kullandığı kitaplıkların mobil kullanım için optimize edilmiş olduğundan emin olun.
- ProGuard gibi bir araç kullanarak derlenmiş kodunuzu optimize etmeyi düşünün. ProGuard, kullanılmayan kodu tespit eder ve APK'nızdan kaldırır. Ayrıca,
build.gradle
içindeminifyEnabled=true
veshrinkResources=true
ayarlarını yaparak derleme sırasında kaynak daraltmayı etkinleştirin. Böylece kullanılmayan kaynaklar APK'nızdan otomatik olarak kaldırılır. - Google Play hizmetlerini kullanırken APK'nıza yalnızca gerekli API'leri seçerek eklemeniz gerekir.
- APK'nızın kod boyutunu küçültme hakkında daha fazla bilgi için Bağımlılık yerleştirme çerçevelerinden kaçınma ile ilgili Android eğitimine bakın.
Uygulamanın harici (SD) depolama birimine taşınmasına izin ver
- Düşük maliyetli cihazlar genellikle cihazdaki depolama alanı azdır. Kullanıcılar SD kartlarla bu süreyi genişletebilirler. Ancak kullanıcıların taşımadan önce uygulamaların harici depolamaya yüklenmeyi desteklediklerini açıkça beyan etmeleri gerekir.
- AndroidManifest.xml dosyanızdaki
android:installLocation
işaretini kullanarak uygulamanızın harici depolamaya yüklenmesine izin verin. Uygulamanızın harici depolama alanına taşınmasını etkinleştirme hakkında daha fazla bilgi için Uygulama Yükleme Konumu ile ilgili Android kılavuzuna bakın.
Yükleme sonrası uygulama disk kullanımını azaltma
- Uygulamanızın disk kullanımını düşük tutmak, cihazda boş alan azaldığında kullanıcıların uygulamanızı kaldırma olasılığını azaltır. Önbelleklerinizin etrafına sınırlar uygulamanız önemlidir. Böylece uygulamanızın disk kullanımı süresiz olarak artar. Önbelleğe alınmış verilerinizi
getCacheDir()
konumuna yerleştirdiğinizden emin olun. Sistem gerektiğinde buraya yerleştirilen dosyaları silebilir. Böylece bu dosyalar, uygulamaya atanan depolama alanı olarak görünmez.
Yapılandırılabilir ağ kullanımı sunar
Android platformunda, uygulamanızın ağ kullanımı üzerinde kullanıcıya kontrol olanağı sunarak uygulamanızı kendi ihtiyaçlarına göre optimize edebileceğiniz çeşitli yöntemler bulunur. Örneğin, uygulamanız ilk kullanımda kullanıcıyı ağla ilgili çeşitli ayarlar konusunda yönlendirebilir. Ayrıca, uygulamanın dışından bir ağ tercihleri ekranı da sağlayabilirsiniz.
Kullanıcıların ağ seçimleri için ilk katılım deneyimleri sağlayın
- Kullanıcıların veri kullanımını azaltmalarına olanak tanıyan uygulamalar yoğun veri gereksinimleri olsa bile olumlu karşılanır. Uygulamanız önemli miktarda bant genişliği kullanıyorsa (ör. video yayın uygulamaları) kullanıcılara ağ kullanımını yapılandırmaları için ilk katılım deneyimi sunabilirsiniz. Örneğin, kullanıcının hücresel ağlarda daha düşük bit hızına sahip video akışlarını zorunlu kılmasına izin verebilirsiniz.
- Kullanıcıların veri senkronizasyonunu, önceden getirmeyi ve ağ kullanımı davranışını kontrol etmesini sağlayan ek ayarlar (ör. yalnızca kablosuz ağda yıldızlı tüm haber kategorilerini önceden getirme) de kullanıcıların uygulamanızın davranışını ihtiyaçlarına göre uyarlamalarına yardımcı olur.
- Ağ kullanımını yönetme hakkında daha fazla bilgi için Ağ Kullanımını Yönetme konulu Android eğitimine bakın.
Ağ tercihleri ekranı
- Uygulamanın dışından bir ağ tercihleri ekranı aracılığıyla uygulamanın ağ ayarlarına gidebilirsiniz. Bu ekranı sistem ayarları ekranından veya sistem veri kullanımı ekranından çağırabilirsiniz.
- Kullanıcıların hem uygulamanızın içinden hem de sistem ayarlarından erişebileceği bir ağ tercihleri ekranı sağlamak için uygulamanızda
ACTION_MANAGE_NETWORK_USAGE
işlemini destekleyen bir etkinlik ekleyin. - Ağ tercihleri ekranı ekleme hakkında daha fazla bilgi için Tercihler Etkinliğini Uygulama konulu Android eğitimine bakın.
Ek kaynaklar
Bu konu hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynakları inceleyin: