此篇为译文,原文地址:https://blog.xamarin.com/5-ways-boost-xamarin-forms-app-startup-time/

1.优先加载本地缓存数据

应用程序第一次加载数据应该提供Loading提示,对必要数据进行本地缓存,应用程序下次启动时优先加载本地缓存数据,再合适时间在获取服务器最新数据。
同时对数据的处理等耗时操作在服务器端进行。

2.资源文件优化

为不同尺寸设备提供不同资源尺寸,避免操作系统帮助我们处理资源尺寸,加快渲染速度。
Android多屏幕支持介绍

  • ldpi (low) ~120dpi
  • mdpi (medium) ~160dpi
  • hdpi (high) ~240dpi
  • xhdpi (extra-high) ~320dpi
  • xxhdpi (extra-extra-high) ~480dpi
  • xxxhdpi (extra-extra-extra-high) ~640dpi

Xamarin.Android 7.0提供了AndroidExplicitCrunch资源属性,加快项目编译速度。开启该功能,打开Android的csproj文件对PropertyGroup节点做如下修改:

iOS图标、图片尺寸

下面是网上找的一个关于iOS和Android设计规范的一个总结尺寸

3.延迟加载

一些统一样式和字体为了方便调用我们通常会将这些资源放在App.xaml Resources中,App.xaml中的资源在应用程序启动时会全部加载,如果想进一步加快应用程序启动,应将不必要的资源放到单独的页面中。

4.编译XAML

Forms中有C#和XAML两种方式定义界面,使用C#代码定义界面,定义界面的代码会随着其他代码一起编译,加快编译速度。XAML Compilation(XAMLC)可以帮助我们在使用XAML定义界面时达到同样的效果,并提供编译时检查。XAMLC把XAML转换成Intermediate Language (IL) 添加到程序集中,加快启动速度和提高运行效率。

XAMLC有两种声明方式:

1.程序集级启用XAMLC,影响整个应用程序

2.类级别启用XAMLC,只对当前累起作用

5.减少程序集的引用

当我们的应用程序添加了过多的引用会拖慢应用程序的执行速度。

Xamarin.Forms for example inspects all assemblies for [ExportRenderer] attributes and currently has no method to opt-in or opt-out. This is something we’re working to improve.
这句话是不是说还没有好的解决办法!英语太差,没懂!!!

  • 技巧1:Ahead of Time Compilation (AOT)
    预编译(AOT)功能目前仅适用于Android,iOS 默认启用 AOTLLVM compiler

如下图方式开启Android AOT功能,开启该功能能改善启动速度和减少即时编译的开销,代价是会增加应用程序大小,所以应综合考虑是否启用该功能。

Note: AOT is available on Xamarin Android 5.1 and 7.0+

更多优化信息请阅读:https://developer.xamarin.com/guides/xamarin-forms/deployment-testing/performance/


获取最新咨询请关注公众号:XamarinTop或扫描如下二维码

XamarinTop

最后更新: 2017年11月04日 10:17

原始链接: http://xamarin.xyz/2017/06/17/5种方法提高Xamarn-Forms应用启动速度/