Развертывание приложения Xamarin - все ли зависимости включены в пакет приложения (apk)? - PullRequest
0 голосов
/ 02 июля 2018

Я новичок в Xamarin и не знаю, как на самом деле работает развертывание решения. Предположим, у меня есть зависимости в моем проекте, как показано на диаграмме ниже: Означает ли это, что развертывание приложения приведет к включению всех проектов? В этом конкретном случае приложение Mobile не использует CoreServices, которое вызывает RestService и Data, но он также вызывает тот же CoreServices, который использует Web.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Связывание на Android

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

Поведение компоновщика

Основным механизмом управления компоновщиком является компоновщик Поведение (связывание в Visual Studio) раскрывающийся в проекте Диалоговое окно параметров. Есть три варианта:

  1. Не связывать (нет в Visual Studio)
  2. Link SDK Сборки (только сборки SDK)
  3. Связать все сборки (SDK и пользовательские сборки)

ref: https://docs.microsoft.com/en-us/xamarin/android/deploy-test/linker

enter image description here

enter image description here

Примечание: Кнопка Advanced (внизу справа) вызывает диалог для настройки целевой архитектуры (ARM, x86, x64 и т. Д.) Вместе с некоторыми другими параметрами это, вероятно, не следует путать с обычно.

0 голосов
/ 02 июля 2018

Ваше приложение будет включать в себя все, что требуется для любой указанной сборки или проекта. Например: если BP.Mobile ссылается на CoreServices, который ссылается на RestServices, все эти результаты сборки проекта будут включены в ваше приложение, которое ссылается на BP.Mobile. Плюс все сборки, идущие с NuGet-пакетами.

То, что находится внутри вашего приложения, легко увидеть, если вы проанализируете свой apk с помощью Android Studio. Или переименуйте ваш apk в zip и распакуйте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...