Xamarin.Forms Performans ve Açılış Hızlandırma Yöntemleri - Xamarin Serisi Bölüm 3
1.10.2017 21:12:22 | Okunma Sayisi : 7511 | Yorum Sayisi : 0
Yeni bir Xamarin.Forms projesi açıp, aynı şekilde yeni bir Xamarin.Android projesi açıp, hiç bir kod eklemeden her iki uygulamanın açılış sürelerini kontrol edecek olursanız, Xamarin.Android uygulamasının daha hızlı açıldığını (load) göreceksiniz. Yani; Xamarin.Forms ile geliştirdiğiniz uygulama, Xamarin.IOS ya da Xamarin.Android ile geliştirdiğiniz uygulamaya göre biraz daha yavaş açılmaktadır (yüklenmektedir).
Uygulama açılış hızını artırmak için yapabilecekleriniz arasında şunları sıralayabiliriz.
İlk olarak offline içeriği yükleyin
Uygulama başlangıcında mümkün ise; API call, veritabanı bağlantısı gibi işlemlerden kaçının. Uygulamanızın offline mod özelliği varsa -ki olması avantajdır- ilk olarak bu offline içeriği ilk açılış ekranı olarak yükleyin. Uygulama açıldıktan sonra API call, veritabanı bağlantılarını kullanın.İçeriklerinizi optimize edin (uygun hale getirin)
Uygulamanızda göstereceğiniz resim ve videolar -yüklenme hızı açısından- maliyetli içeriklerdir, haliyle ekranın render edilmesini yavaşlatırlar. İçerikleri işletim sistemine yeniden boyutlandırmak (resize) yerine, bu işi kendiniz yapın.Android için farlklı density' leri temsil eden klasörler bulunmaktadır.
- ldpi (low) ~120dpi
- mdpi (medium) ~160dpi
- hdpi (high) ~240dpi
- xhdpi (extra-high) ~320dpi
- xxhdpi (extra-extra-high) ~480dpi
- xxxhdpi (extra-extra-extra-high) ~640dpi
Bu ölçeklendirmeleri yapabilmeniz için bir çok online ürün bulunmaktadır. Kısacası, işletim sistemine ölçeklendirme yaptırmak yerine, ölçeklendirmeyi kendiniz yapın.
Kullanılmayan hiç bir şeyi projede tutmayın ve Lazy Load yapın
App.xaml (Resources) dosyası; fontları, stilleri ve diğer resource' ları (kaynakları) saklamak için uygun bir yerdir, ancak bu dosyadakilerin tamamı uygulama açılışında yüklenir. Kullanmadığınız tüm resource' ları (font, stil vb.) buradan silin ve bunlara ihtiyaç duyulduğu zaman yükleyin (Lazy Load yapın).XAML Compilation' ı aktive edin
XAMLC (XAML Compilation)' ı aktive etmeniz, XAML kodunuzun IL (Intermediate Language)' e derlenmesine ve derlenmiş assembly içerisine eklenmesine olanak sağlar. Böylece daha hızlı bir uygulama açılışı ve runtime (çalışma zamanı) performansı elde etmiş olursunuz.XAML Compilation' ı class seviyesinde ya da uygulama seviyesinde belirtebilirsiniz. Uygulama seviyesinde belirtmek için namespace üzerine aşağıdaki satırı eklemeniz gerekmektedir.
using Xamarin.Forms.Xaml; ... [assembly: XamlCompilation (XamlCompilationOptions.Compile)] namespace Uygulama1 { //... }
Bu işlemi class seviyesinde yapmak için ise aşağıdaki satırı eklemeniz gerekmektedir.
using Xamarin.Forms.Xaml; ... [XamlCompilation (XamlCompilationOptions.Compile)] public class MainPage : ContentPage { //... }XAMLC' nin aktive edilmesi, UI' ın daha hızlı render edilmesini sağlayacaktır (dosya boyutu artabilir).
Assembly sayısını düşürün
İşinizi kolaylaştıran kimi NuGet paketleri başka kütüphaneleri de beraberinde yüklerler ve projeniz assembly cennetine döner. Mümkün olduğunca az assembly bulundurmaya çalışın.Ahead of Time Compilation (AOT) kullanın
IOS, varsayılan olarak zaten AOT' yi ve LLVM (Low Level Virtual Machine) derleyiciyi kullanmakta. Android tarafında ise AOT henüz deney aşamasında. Deneysel aşamada olmasına rağmen Android için AOT' yi kullanarak açılış süresini hızlandırabilirsiniz. Tabii bu açılış hızı size APK boyutunda artış olarak geri dönecektir. Açılış hızı ile APK boyutu arasında tercih size kalmış.Android için AOT' yi aktif hale getirmek için;
Android projesine sağ tıklayıp Properties seçin. Gelen pencerede Android Options sekmesinde Code Generation and Runtime kısmında AOT Compilation ve Use LLVM Optimizing compiler seçeneklerini işaretleyin (sürüm farklılıklarından dolayı farklı ifadeler görebilirsiniz kendi ayarlarınızda).
Doğru Layout' u seçin
Birden fazla element barındırabilen bir Layout içerisine tek bir element koymaktansa, o elementi Layout' suz kullanın.Örnek: Aşağıdaki gibi ekranda yalnızca bir Image gösterecekseniz yani ikinci bir element olmayacaksa bu Image' ı StackLayout içerisine almak yerine, yalnız başına kullanın.
0 Yorum