Aşamaları ve performansı oluşturma

Oluşturma bir kareyi güncellediğinde üç aşamadan geçer:

  • Beste: Oluştur, nelerin gösterileceğini belirler. composable işlevlerini çalıştırır ve kullanıcı arayüzü ağacını oluşturur.
  • Düzen: Oluştur, kullanıcı arayüzü ağacındaki her bir öğenin boyutunu ve yerleşimini belirler.
  • Çizim: Oluştur işlevi aslında bağımsız kullanıcı arayüzü öğelerini oluşturur.

Oluşturma işlemi, gerekli olmadığı sürece bu aşamaların herhangi birini akıllı bir şekilde atlayabilir. Örneğin, tek bir grafik öğesinin aynı boyuttaki iki simge arasında geçiş yaptığını varsayalım. Bu öğenin boyutu değişmediğinden ve kullanıcı arayüzü ağacında hiçbir öğe eklenmediğinden veya kaldırılmadığından Compose oluşturma ve düzen aşamalarını atlayıp bu tek öğeyi yeniden çizebilir.

Ancak, kodlama hataları, Compose'un hangi aşamaları güvenli bir şekilde atlayabileceğini bilmesini zorlaştırabilir. Bu durumda, Compose üç aşamayı da çalıştırır ve bu durum kullanıcı arayüzünüzü yavaşlatabilir. Bu nedenle, en iyi performans uygulamalarının çoğu, Compose'un yapması gerekmeyen aşamaları atlamasına yardımcı olur.

Daha fazla bilgi için Jetpack Oluşturma Aşamaları kılavuzuna bakın.

Genel ilkeler

Genel olarak performansı artırabilecek birkaç genel ilke vardır:

  • Mümkün olduğunda, hesaplamaları composable işlevlerinizin dışına taşıyın. Kullanıcı arayüzü değiştiğinde composable işlevlerin yeniden çalıştırılması gerekebilir. composable'a yerleştirdiğiniz tüm kodlar, potansiyel olarak bir animasyonun her karesinde yeniden yürütülür. composable'ın kodunu yalnızca kullanıcı arayüzünü derlemek için gereken kodla sınırlandırın.
  • Durum okumalarını mümkün olduğu kadar erteleyin. Durum okumasını "child composable" veya daha sonraki bir aşamaya taşıyarak yeniden kompozisyonu en aza indirebilir ya da beste aşamasını tamamen atlayabilirsiniz. Bunu, sık sık değişen durum için durum değeri yerine lambda işlevlerini ileterek ve sık sık değişen durumlarda lambda tabanlı değiştiricileri tercih ederek yapabilirsiniz. Bu tekniğin bir örneğini En iyi uygulamaları takip etme başlıklı makalenin Mümkün olduğunca uzun süre okumaları ertele bölümünde görebilirsiniz.

Ek Kaynaklar