Aşağıdaki en iyi uygulamalar, kaliteden ödün vermeden uygulamanızı optimize etmenize yardımcı olur.
Temel Profilleri Kullan
Temel Profiller iyileştirilebilir ilk lansmandan itibaren kod yürütme hızını% 30 artırdı ve tüm kullanıcıların etkileşimleri (ör. uygulama başlatma, ekranlar arasında gezinme veya kaydırma) daha akıcı bir deneyim sağlar. Hızı artırmak ve bir uygulamanın yanıt verme hızı, daha fazla günlük etkin kullanıcı ve daha yüksek ortalama değer sağlıyor. geri dönen ziyaret oranı.
Başlangıç profili kullanma
CEVAP başlangıç profili Temel Profile benzerdir ancak profili optimize etmek için derleme sırasında Uygulamanın daha hızlı başlatılması için DEX düzeni.
Uygulama Başlatma kitaplığını kullanma
Uygulama Başlatma kitaplığı ile uygulama bileşen başlatıcıları tanımlamak yerine tek bir içerik sağlayıcıyı başlatmanız gereken her bileşen için ayrı içerik sağlayıcı ekleyin. Bu uygulama başlatma süresini önemli ölçüde iyileştirdik.
Kitaplıkları geç yükleme veya otomatik başlatmayı devre dışı bırakma
Uygulamalar çok sayıda kitaplık kullanır. Bu kitaplıklardan bazıları başlatma işlemi için zorunlu olabilir. Ancak başlatmanın, otomatik olarak seçim yapar. Bazı kitaplıklarda devre dışı bırakma seçeneği vardır başlatma sırasında otomatik başlatma veya isteğe bağlı başlatma özelliği ile kullanılabilir. Bunu kullan performansı artırmaya yardımcı olması için gerekene kadar başlatma işlemini erteleme seçeneği sunar. Örneğin, her tür isteğe bağlı başlatma WorkManager'ı yalnızca bileşen gerekli olduğunda çağırın.
ViewStubs'ı kullan
ViewStub
görünmez, sıfır boyutlu bir öğedir
Çalışma zamanında düzen kaynaklarını gecikmeli olarak şişirmek için kullanabileceğiniz View
. Bu
Ancak açılışta gerekli olmayan görünümlerin şişirilmesini, daha sonraki bir zamana kadar
gerekir.
Jetpack Compose'u kullanıyorsanız ViewStub
ile benzer davranışlar elde edebilirsiniz.
bazı bileşenlerin yüklenmesini ertelemek için durumu kullanın:
var shouldLoad by remember {mutableStateOf(false)}
if (shouldLoad) {
MyComposable()
}
shouldLoad
öğesini değiştirerek koşullu blok içindeki hazırlanabilir öğeleri yükleyin:
LaunchedEffect(Unit) {
shouldLoad = true
}
Bu işlem, koşullu tablodaki kodu içeren bir yeniden ilk snippet'te yer alır.
Başlangıç ekranınızı optimize etme
Başlangıç ekranları, uygulama geliştirme sürecinin önemli bir parçasıdır ve iyi tasarlanmış bir başlangıç ekranı, 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. bazı yolları da görmüştük. Daha fazla bilgi için bkz. Splash tıklayın.
Ölçeklenebilir resim türlerini kullanma
Tek bir sayfada bulunan vektör çizimler için de geçerlidir. Mümkün değilse WebP kullanın resim. WebP bir resim biçimidir sağlayan otomatik kodlama çözümü sunar. Siz mevcut BMP, JPG, PNG veya statik GIF resimlerini Android Studio'ya gidin. Daha fazla bilgi için WebP oluşturma bölümüne bakın resim.
Ayrıca, başlatma sırasında yüklenen resimlerin sayısını ve boyutunu en aza indirin.
Performance API'lerini kullanın
Medyalar için performans API'si oynatma özelliği Android'de kullanılabilir 12 (API düzeyi 31) ve sonraki sürümler. Cihazı anlamak için bu API'yi kullanabilirsiniz ve işlemleri buna göre yürütür.
Baştan başlatma izlerine öncelik ver
Sıfırdan başlatma, bir kullanıcının en baştan başlayalım. Yani, sistem tarafından süreç henüz işlemi yapmasına olanak tanır. Uygulamanız ilk kez başlattığınızda genellikle soğuk başlar cihaz başlatıldıktan veya sistemin uygulamayı zorla durdurmasından bu yana geçen süre. Soğuk başlatma işlemi çok daha yavaştır çünkü uygulamanın ve sistemin, hazır ve çalışır durumda başlatma gibi diğer başlatma türlerinde gerekli değildir. Sistem izleme yeni başlayanlar uygulama performansını daha iyi takip etmenizi sağlar.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Uygulama başlatma analizi ve optimizasyonu {:#app-startup-analysis- Optimization}
- Uygulama başlatma süresi
- Donmuş kare