Я бы первый вы проверить фактическую разницу между конфигурацией Debug
против подписанного Release
конфигурации с точки зрения «производительности запуска».
https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/#Release_Packages
К сожалению, конфигурация Debug
имеет немного элементов, которые необходимы, чтобы быть на месте для того, чтобы отладить. Это также известно как Shared Runtime
и Shared Platform
. Это ~ 10 МБ для копирования при первом запуске.
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 (на странице «Свойства упаковки») включает сборку сборок Ahead в режиме «Вперед» (AOT). Когда этот параметр включен, служебные данные запуска Just In Time (JIT) сводятся к минимуму путем предварительной компиляции сборок перед запуском. Полученный нативный код включен в APK вместе с несвязанными сборками. Это приводит к сокращению времени запуска приложения, но за счет немного больших размеров APK.
Для опции компиляции AOT требуется лицензия Enterprise или выше. Компиляция 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 компиляции включен (на странице Упаковка Свойства), вы можете включить 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
Пожалуйста, имейте это примечание в виду при использовании как AOT
и LLVM
:
ПРИМЕЧАНИЕ: АОТ в настоящее время является experimental feature. Это не рекомендуется для использования в производстве. AOT и LLVM были доступны в Xamarin.Android 5.1, но он больше не доступен в более поздних версиях Xamarin.Android. Для получения дополнительной информации см. release notes.
Другие элементы, которые могут быть связаны, но я не буду вдаваться в подробности на основе вашей «Файл -> Новый проект» предположения:
- Doing слишком много работы перед применением выходит
OnCreate()
- Не сокращается ваш
.apk
столько, сколько это возможно для быстрого времени загрузки
Добавлен записку на основе ссылке, которую я уже имел в [АОТ документации] (https://developer.xamarin.com/guides/ Androi d/deployment, _testing, _and_metrics/publishing_an_application/part_1 _ -_ prepare_an_application_for_release/# AOT_Compilation): –
Простите, пропустил это, еще недостаточно кофе :-) – SushiHangover
AOT были удалены с Xamarin 6.1 ([примечание к выпуску] (https: // разработчик .xamarin.com/релизы/android/xamarin.android_6/xamarin.android_6.1)) Я сохраню свое медленное стартовое приложение: s – Drakkin