Debug
我首先会让您检查配置与签名Release
配置在“启动性能”方面的实际差异。
https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Release_Packages
可悲的是,Debug
配置有一些项目需要到位才能进行调试。这也称为Shared Runtime
and Shared Platform
。第一次运行时要复制大约 10MB。
https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Debug_Packages
复制这些核心组件只需完成一次,因为它需要相当多的时间,但允许任何后续运行在调试模式下的应用程序使用它们。最后,我们复制实际应用,小而快:
所以这可能是一个因素。但是,让我们在这里讨论一些其他选项:
您还可以使用Fast Assembly Deployment
which 将仅在设备上直接安装程序集一次,然后它将复制自上次部署以来已修改的文件。
https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Fast_Assembly_Deployment
注意:默认情况下,这两个设置通过以下 MSBuild 属性“开启”:<AndroidUseSharedRuntime>true</AndroidUseSharedRuntime>
和<EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>
接下来您可以使用AOT
(注意:在撰写本文时是实验性的):
AOT 编译选项(在“打包属性”页面上)启用程序集的提前 (AOT) 编译。启用此选项后,通过在运行前预编译程序集可以最大限度地减少即时 (JIT) 启动开销。生成的本机代码与未编译的程序集一起包含在 APK 中。这会缩短应用程序的启动时间,但代价是 APK 大小会稍大一些。
AOT 编译选项需要企业许可证或更高版本。AOT 编译仅在项目配置为 Release 模式时可用,默认禁用。有关 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 编译选项时(在 Packaging Properties 页面上),您可以选择启用 LLVM Optimizing Compiler 以将 AOT 编译的程序集转换为本机代码。LLVM 编译器创建更小更快的编译代码,但以更慢的构建时间为代价。默认情况下禁用 LLVM 编译器。
请注意,LLVM 优化编译器选项需要商业许可证或更高版本,并且仅在启用 AOT 编译时可用。
https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#LLVM_Optimizing_Compiler
AOT
使用和时请记住这一点LLVM
:
注意:AOT 目前是一项实验性功能。不建议用于生产用途。AOT 和 LLVM 在 Xamarin.Android 5.1 中可用,但在更高版本的 Xamarin.Android 中不再可用。有关详细信息,请参阅发行说明。
其他可能相关的项目,但我不会根据您的“文件->新项目”假设进行详细介绍:
- 在应用程序退出之前做太多工作
OnCreate()
.apk
尽可能多地缩小你的加载时间