Jetpack Compose, kullanıma hazır mükemmel bir performans sunar. Sık yapılan hatalardan kaçınmak ve Compose uygulamanızın performansını optimize etmek için en iyi uygulamalardan yararlanarak uygulamanızı yapılandırın.
Android becerileri
GitHub'da gösterJetpack Compose performansı
android skills add jetpack-compose-performanceJetpack Compose'u karşılaştırma
Jetpack Compose performansını Görünümler'e göre doğrulamak için kahraman karşılaştırmaları kullanırız. Bu karşılaştırmalar, bir uygulamayı soğuk başlatma veya resim içeren bir listeyi ya da ızgarayı kaydırma gibi önemli, gerçek dünyadaki kullanıcı yolculuklarına odaklanır. Bu karşılaştırmaları, açık kaynaklı Pokedex uygulamasını kullanarak ve uygulamanın Görünümler ile Compose uygulamalarını karşılaştırarak yapıyoruz.
Bu karşılaştırmalar, Compose 1.9 ve sonraki sürümlerin kaydırma sırasında takılma açısından Views performansıyla eşleştiğini gösterir.
Ek metrikler ve metodolojilerimiz hakkında bilgi edinmek için Hero karşılaştırmaları sayfasını inceleyin.
Temel kavramlar
Compose'da performansla ilgili temel kavramlardan bazıları şunlardır:
- Aşamalar: Oluşturma, düzen ve çizim aşamalarını anlamak, Compose'un kullanıcı arayüzünüzü güncelleme şeklini optimize etmek açısından çok önemlidir.
- Temel Profiller: Bu profiller, temel kodları önceden derleyerek uygulamaların daha hızlı başlatılmasını ve daha sorunsuz etkileşimler sunmasını sağlar.
- Kararlılık: Compose'un yeniden oluşturma sırasında parametreleri nasıl karşılaştırdığını öğrenin. Böylece, maliyetli eşitlik kontrolleri yapmadan gereksiz işleri atlayabilirsiniz.
Uygulamanızı doğru şekilde yapılandırma
Uygulamanızın performansı düşükse bir yapılandırma sorunu olabilir. İlk adım olarak aşağıdaki yapılandırma seçeneklerini kontrol etmeniz önerilir:
- R8 ile sürüm modunda derleme: Uygulamanızı sürüm modunda çalıştırmayı deneyin. Hata ayıklama modu, birçok sorunu tespit etmek için kullanışlıdır ancak performans maliyetine neden olur ve diğer sorunların tespit edilmesini zorlaştırabilir. Ayrıca, performanslı ve verimli bir yayınlanan derleme elde etmek için R8 derleyici ile optimizasyonu ve küçültmeyi etkinleştirmeniz gerekir.
- Temel Profiller'i kullanın: Temel Profiller, kritik kullanıcı yolculukları için kodu önceden derleyerek performansı artırır. Compose'da varsayılan bir profil bulunur ancak ideal olarak uygulamaya özel bir profil de oluşturmanız gerekir. Genel Android performans belgelerinde Baseline Profilleri hakkında daha fazla bilgi edinin.
Araçlar
Compose uygulamanızın performansını ölçmenize ve analiz etmenize yardımcı olacak araçlar hakkında bilgi edinin.
En İyi Uygulamalar
Uygulamanızı Compose ile geliştirirken aşağıdaki en iyi uygulamaları göz önünde bulundurun:
- Yüksek maliyetli hesaplamalardan kaçının: Yüksek maliyetli hesaplamaların sonuçlarını önbelleğe almak için
rememberkullanın. - Yavaş düzenlere yardımcı olun: Gereksiz yeniden oluşturma işlemlerini en aza indirmek ve yuvaların yeniden kullanılmasını sağlamak için yavaş düzenlere kararlı
keyvecontentTypeparametreleri sağlayın. - Gereksiz yeniden oluşturma işlemlerini sınırlayın: Hızla değişen durumu okurken yeniden oluşturma işlemlerini sınırlamak için
computedStateOf(Compose 1.13 ve sonraki sürümlerde) veyaderivedStateOfkullanın. - Durum okumalarını erteleme: Durum okumalarını lambda işlevlerine sarmalayarak mümkün olduğunca erteleyin.
- Durumu değiştirmek için lambda değiştiricileri kullanın: Sık değişen durum değişkenleri için
Modifier.offset { ... }gibi lambda tabanlı değiştiriciler kullanın. - Geriye doğru yazma işlemlerinden kaçının: Bir composable'da daha önce okunmuş olan duruma hiçbir zaman yazmayın.
Daha fazla bilgi için en iyi uygulamalar kılavuzuna bakın.
Görüntüleme sayısı
Compose yerine görünümlerle çalışıyorsanız özel Düzen performansını iyileştirme kılavuzunu inceleyin.
Ek kaynaklar
- Uygulama performansı kılavuzu: Android'de performansı artırmak için en iyi uygulamaları, kitaplıkları ve araçları keşfedin.
- Performansı İnceleme: Uygulama performansını inceleyin.
- Karşılaştırma: Uygulama performansını karşılaştırın.
- Uygulama başlatma: Uygulama başlatmayı optimize edin.
- Temel profiller: Temel profilleri anlama.