Uygulama optimizasyonu için en iyi uygulamalar

Aşağıdaki en iyi uygulamalar, kaliteden ödün vermeden uygulamanızı optimize etmenize yardımcı olur.

Temel Profilleri Kullanın

Temel Profiller kod yürütme hızını ilk başlatmadan itibaren% 30 artırabilir ve uygulama başlatma, ekranlar arasında gezinme veya içerikte gezinme gibi tüm kullanıcı etkileşimlerini ilk çalıştırıldıkları andan itibaren daha sorunsuz hale getirebilir. Bir uygulamanın hızının ve yanıt verme hızının artırılması, daha fazla günlük etkin kullanıcı ve daha yüksek bir ortalama geri dönüş ziyaret oranı sağlar.

Başlangıç profili kullanma

Başlangıç profili Temel Profil'e benzer, ancak DEX düzenini daha hızlı uygulama başlatmak amacıyla optimize etmek için derleme zamanında çalıştırılır.

Uygulama Başlangıç kitaplığını kullanma

Uygulama Başlatma kitaplığı, başlatmanız gereken her bileşen için ayrı içerik sağlayıcılar tanımlamak yerine, tek bir içerik sağlayıcısını paylaşan bileşen başlatıcıları tanımlamanıza olanak tanır. Bu, uygulama başlatma süresini önemli ölçüde iyileştirebilir.

Kitaplıkları geç yükleme veya otomatik başlatmayı devre dışı bırakma

Uygulamalar, bazıları başlangıç için zorunlu olabilecek çok sayıda kitaplık kullanır. Bununla birlikte, başlatma işleminin ilk kare çizilene kadar ertelenebileceği birçok kitaplık olabilir. Bazı kitaplıklarda başlangıçta otomatik başlatmayı devre dışı bırakma veya isteğe bağlı başlatma seçeneği bulunur. Performansı artırmaya yardımcı olması için gerekli olana kadar başlatmayı ertelemek için bu seçeneği kullanın. Örneğin, WorkManager'ı yalnızca bileşen gerekli olduğunda çağırmak için isteğe bağlı başlatma özelliğini kullanabilirsiniz.

Viewstub'ları kullanma

ViewStub, çalışma zamanında düzen kaynaklarını geç tıklayarak artırmak için kullanabileceğiniz görünmez, sıfır boyutlu birView öğedir. Bu sayede, başlangıçta gerekli olmayan görüntüleme sayılarının artmasını daha sonraki bir zamana kadar geciktirebilirsiniz.

Jetpack Compose'u kullanıyorsanız bazı bileşenlerin yüklenmesini ertelemek için durum kullanılarak ViewStub ile benzer bir davranış elde edebilirsiniz:

var shouldLoad by remember {mutableStateOf(false)}

if (shouldLoad) {
   MyComposable()
}

shouldLoad öğesini değiştirerek, koşullu blokun içindeki oluşturulabilir öğeleri yükleyin:

LaunchedEffect(Unit) {
   shouldLoad = true
}

Bu, ilk snippet'teki koşullu blokun içindeki kodu içeren bir yeniden oluşturma işlemini tetikler.

Başlangıç ekranınızı optimize edin

Başlangıç ekranları, uygulama açılışının önemli bir parçasıdır ve iyi tasarlanmış bir başlangıç ekranı kullanmak genel uygulama başlatma deneyimini iyileştirmeye yardımcı olabilir. Android 12 (API düzeyi 31) ve sonraki sürümler, performansı iyileştirmek için tasarlanmış bir başlangıç ekranı içerir. Daha fazla bilgi için Başlangıç ekranı bölümünü inceleyin.

Ölçeklenebilir resim türlerini kullanın

Resimler için vektör çizimlerinin kullanılmasını öneririz. Mümkün olmayan yerlerde WebP images kullanın. WebP, web'deki resimler için üstün kalitede kayıpsız ve kayıplı sıkıştırma sağlayan bir resim biçimidir. Android Studio'yu kullanarak mevcut BMP, JPG, PNG veya statik GIF resimleri WebP biçimine dönüştürebilirsiniz. Daha fazla bilgi için WebP görüntüleri oluşturma konusuna bakın.

Ayrıca, başlatma sırasında yüklenen resimlerin sayısını ve boyutunu en aza indirin.

Performance API'leri kullanma

Medya oynatma için Performance API, Android 12 (API düzeyi 31) ve sonraki sürümlerde kullanılabilir. Cihaz özelliklerini anlamak ve işlemleri buna göre gerçekleştirmek için bu API'yi kullanabilirsiniz.

Baştan başlatma izlerine öncelik ver

Sıfırdan başlatma, uygulamanın sıfırdan başlatılmasını ifade eder. Yani sistemin süreci henüz uygulamanın sürecini oluşturmaz. Uygulamanız genellikle cihaz başlatıldıktan sonra ilk kez başlattığınızda veya sistem uygulamayı zorla durdurduğundan başlar. Soğuk başlatmalar çok daha yavaştır. Bunun nedeni, uygulama ve sistemin, sıcak ve çalışır durumda başlatma gibi diğer başlatma türlerinde gerekli olmayan daha fazla iş gerçekleştirmesi gerekmesidir. Sistem izleme özelliği (baştan başlatma) uygulama performansını daha iyi takip etmenizi sağlar.