2016-11-08 58 views
3

如何在使用Xamarin.Android方法编写的C#中编写的Android应用程序中提高启动性能/降低启动时间(用于点击应用程序和介绍屏幕之间的时间) 。使用Xamarin在Android应用程序中提升启动性能

由于我的设备不是最古老的(摩托罗拉Moto G3),我想知道为什么一些大型商业应用/游戏,如Clash of Clans和Facebook有那么一点点“黑屏”时间和我小小的易碎的Android应用程序甚至不会从本地存储装载数据(仅从硬编码值创建数据模型)需要很长时间才能显示介绍屏幕。

创建一个完整的新的应用程序,并通过ADB我的手机上开始此即使有一些延迟提前 感谢

回答

1

我首先你查主场迎战签署Release配置的Debug配置之间的实际差异在“启动性能”方面。

https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Release_Packages

可悲的是一个Debug配置有一点是必须到位,以调试项目。这也被称为Shared RuntimeShared Platform。这是大约10MB的第一次运行复制。

https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Debug_Packages

复制这些核心组件只进行一次,因为它需要相当长的时间,但允许在调试模式下运行的任何后续应用,以利用它们。最后,我们复制实际的应用程序,这是小而快的:

因此,这可能是一个因素。但是,让我们来谈谈其他一些选项,但我们在这里:

您也可以使用Fast Assembly Deployment,它将直接在设备上安装程序集一次,然后它将复制自上次部署以来已修改的文件。

https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Fast_Assembly_Deployment

注:这两个设置 “中的” 默认情况下,通过以下的MSBuild属性<AndroidUseSharedRuntime>true</AndroidUseSharedRuntime><EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>

接下来,您可以使用AOT(注:是实验性的写作时间)

AOT Compil (在“打包属性”页面上)启用组件的前期(AOT)编译。启用此选项时,通过在运行时之前预编译程序集,将Just In Time(JIT)启动开销降至最低。生成的本机代码与未编译的程序集一起包含在APK中。这会缩短应用程序的启动时间,但会以较大的APK大小为代价。

AOT编译选项需要Enterprise许可证或更高版本。 AOT编译仅在项目配置为发布模式时可用,并且默认情况下禁用。有关AOT编译的更多信息,请参阅AOT。

https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#AOT_Compilation

最后,你可以启用LLVM Optimization Compiler(注:在写作的时间实验)

当AOT编译选项启用(打包属性页上),您可以选择启用LLVM Optimizing Compiler将AOT编译的程序集转换为本机代码。 LLVM编译器创建更小更快的编译代码,但代价是生成时间更慢。 LLVM编译器默认是禁用的。

请注意,LLVM Optimizing Compiler选项需要Business许可证或更高版本,并且仅在启用AOT编译时才可用。

https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#LLVM_Optimizing_Compiler

同时使用AOTLLVM时,请保留此注记:

注:AOT目前是experimental feature。不建议用于生产。 AOT和LLVM在Xamarin.Android 5.1中可用,但在后来的Xamarin.Android版本中不再可用。欲了解更多信息,请参阅release notes

可以与其他项目,但我不会细讲根据您的“文件 - >新建项目”的假设:

  • 应用程序之前做的工作太多了退出OnCreate()
  • 不缩水的.apk就像你可能可以用于基于我已经在[AOT文档(链路上的快速加载时间
+0

添加了注释https://developer.xamarin.com/guides/ androi dorax_development_application/part_1 __ _ prepare_an_application_for_release /#AOT_Compilation): –

+0

对不起,错过了,还没有足够的咖啡呢:-) – SushiHangover

+0

自Xamarin 6.1([发布说明])(https:// developer .xamarin.com/releases/android/xamarin.android_6/xamarin.android_6.1))我会保持我的慢启动应用程序:s – Drakkin

相关问题