Aşağıdaki en iyi uygulamalar, kaliteden ödün vermeden uygulamanızı optimize etmenize yardımcı olur.
Temel profilleri kullanma
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çeriklerde gezinme gibi tüm kullanıcı etkileşimlerini ilk çalıştırmadan itibaren daha sorunsuz hale getirebilir. Bir uygulamanın hızını ve yanıt verme özelliğini artırmak, günlük etkin kullanıcı sayısının artmasına ve ortalama geri dönüş ziyaret oranının yükselmesine yol açar.
Başlangıç profili kullanma
Başlangıç profili, temel profile benzer ancak daha hızlı uygulama başlatma için DEX düzenini optimize etmek üzere derleme zamanında çalıştırılır.
Uygulama Başlatma kitaplığını kullanma
App Startup 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ıyı 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şlatma için zorunlu olabilecek birçok kitaplık kullanır. Ancak, ilk çerçeve çizilene kadar başlatmanın gecikebileceğ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ırmak için başlatmayı gerekene kadar ertelemek üzere bu seçeneği kullanın. Örneğin, bileşen gerektiğinde WorkManager'ı çağırmak için isteğe bağlı başlatma'yı kullanabilirsiniz.
Composable işlevlerde durumu kullanma
Durum, zaman içinde değişebilen ve kullanıcı arayüzünüzün ne göstereceğini veya nasıl davranacağını belirleyen tüm verilerdir. Compose bildirimsel olduğundan, kullanıcı arayüzü durumu değişikliklerini açıkça gözlemleyip yanıtlamadığı sürece ekran otomatik olarak güncellenmez.
Hata ekranları, isteğe bağlı ayrıntılar veya ikincil sekmeler gibi, başlatıldığında hemen görünmeyen kullanıcı arayüzünüzün bölümlerinin yüklenmesini ertelemek için koşullu bileşim kullanmayı düşünebilirsiniz. Ağır bileşenleri basit bir durum kontrolüyle sarmalayarak, kritik başlangıç penceresi sırasında bileşim mantıklarının yürütülmesini önler ve ilk düzeninizi hafif tutarsınız.
var shouldLoad by remember {mutableStateOf(false)}
if (shouldLoad) {
MyComposable()
}
shouldLoad öğesini değiştirerek koşullu bloktaki composable'ları 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. Daha fazla bilgi için State in composables (Composable'larda durum) başlıklı makaleyi inceleyin.
Açılış ekranınızı optimize etme
Başlangıç ekranları, uygulamanın başlatılmasının önemli bir parçasıdır ve iyi tasarlanmış bir başlangıç ekranı kullanmak, uygulamanın başlatılmasıyla ilgili genel deneyimi iyileştirmeye yardımcı olabilir. Android 12 (API düzeyi 31) ve sonraki sürümlerde, performansı artırmak için tasarlanmış bir başlangıç ekranı bulunur. Daha fazla bilgi için Başlangıç ekranı başlıklı makaleyi inceleyin.
Ölçeklenebilir resim türlerini kullanma
Resimler için vektör grafikler kullanmanızı öneririz. Mümkün olmadığında WebP resimler 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 resimlerini WebP biçimine dönüştürebilirsiniz. Daha fazla bilgi için WebP resimleri oluşturma başlıklı makaleyi inceleyin.
Ayrıca, başlangıç sırasında yüklenen resimlerin sayısını ve boyutunu en aza indirin.
Performans API'lerini kullanma
Medya oynatma için performans API'si, Android 12 (API düzeyi 31) ve sonraki sürümlerde kullanılabilir. Cihaz özelliklerini anlamak ve buna göre işlemler yapmak için bu API'yi kullanabilirsiniz.
Sıfırdan başlatma izlerine öncelik verme
Sıfırdan başlatma, uygulamanın sıfırdan başlamasını ifade eder. Bu durumda sistemin işlemi henüz uygulamanın işlemini oluşturmaz. Uygulamanız, cihaz yeniden başlatıldıktan veya sistem uygulamayı zorla durdurduktan sonra ilk kez başlatıldığında genellikle sıfırdan başlatılır. Uygulama ve sistemin, hazırda başlatma ve çalışır durumda başlatma gibi diğer başlatma türlerinde gerekmeyen daha fazla işlem yapması gerektiğinden sıfırdan başlatma çok daha yavaştır. Sistem izleme soğuk başlatmalar, uygulama performansını daha iyi denetlemenizi sağlar.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir.
- Uygulama başlatma analizi ve optimizasyonu
- Uygulama başlatma süresi
- Donmuş kare