Влияние стандарта Xamarin .net на размер APK

Когда вы используете стандартную библиотеку .net из полной платформы .net, вам в конечном итоге приходится включать/развертывать стандартные версии .net всех сборок System.*, которые использует стандартная библиотека .net.

Теперь, когда Xamarin поддерживает стандарт .net, а Microsoft рекомендует людям использовать стандарт .net, а не PCL, нам вскоре придется переключиться (разработчики библиотек отказываются от поддержки PCL).

Мой вопрос: означает ли использование стандартной библиотеки .net в проекте Xamarin для Android, что будет развернуто несколько системных сборок (стандартная версия .net и моноверсия)?

Приложения Xamarin уже намного больше, чем нативные, и необходимость включать дубликаты всех системных сборок, которые нам нужны, может стать нарушителем условий сделки в будущем.


person trampster    schedule 19.05.2017    source источник
comment
Почему бы не проверить это? Это ответит на ваш вопрос с точной информацией для вашего варианта использования.   -  person tequila slammer    schedule 19.05.2017
comment
Да, я мог бы протестировать его, но для этого потребовался бы переход на стандарт .net, что для нашего существующего приложения требует больших усилий. Информация, запрашиваемая в этом вопросе, отсутствует во всей документации Microsoft/Xamarin. Ответ на этот вопрос будет полезен для других, желающих перейти на стандарт .net, а не только для меня. Я считаю, что этот вопрос имеет значение. Мало того, что если вы обратитесь к xamarin, они скажут вам задать свой вопрос здесь, в stackoverflow.   -  person trampster    schedule 20.05.2017
comment
Это правильный вопрос, возможно, кто-то проделал работу над своим приложением и знает результаты.   -  person Emmanuel Vazquez    schedule 02.06.2017
comment
Потенциально немного лучше. Мое приложение уменьшилось с ~ 30 МБ до 20 МБ. Ваш пробег может варьироваться в зависимости от используемых вами пакетов nuget.   -  person knechtrootrecht    schedule 23.08.2017


Ответы (1)


Стандарты .NET определяют поверхность API каждой версии. Реализация поверхности API лежит на платформе.

В случае Xamarin поверхность реализована в среде Mono, которая развертывается с каждым приложением. (И было раньше)

Если вы ссылаетесь только на библиотеку NETStandard, окончательный файл .apk не увеличится.

Дополнительные пакеты NuGet могут привести к дополнительным зависимостям, специфичным для NetStandard (которые ранее могли обрабатываться самой платформой .net/mono).

person woelliJ    schedule 03.06.2017