2017-01-24 2 views
2

Я занимаюсь созданием своего первого приложения для Android с помощью Xamarin. Мне понадобится база данных, а документы Xamarin рекомендуют пакет NuGet «SQLite-net-pcl» (here). Когда я иду для установки этого пакета, он перечисляет около 50 зависимостей, которые он хочет установить! Сколько это будет увеличивать размер моего приложения?Xamarin Android SQLite.Net NuGet package

Является ли это нормальным с развитием Xamarin? Исходя из фона WPF, я признаю, что у меня пока нет головы вокруг всего этого .Net ядра/стандартного материала.

И почему документы рекомендуют этот пакет по встроенному пространству имен Android.Database.Sqlite? Легкость использования (пакета SQLite.net) перевешивает увеличение размера приложения?

+2

Вы можете игнорировать ** большинство ** из этих зависимых пакетов, они не будут раздувать ваше окончательное приложение, только добавленные сборки, которые стали ссылками на сборки (через пакет), т.е. SQLite-net и SQLitePCLraw **** Вы можете использовать 'Android.Database.Sqlite' вместо этого? Конечно, можно и, следовательно, вы не захотите добавлять родную общую библиотеку SQLite (.so) в свой пакет приложений, но будете вынуждены использовать возможно более старый * SQLite.so, предоставляемый ОС, и должны использовать API-интерфейс Java для доступа SQLite, который чужд многим разработчикам C#. – SushiHangover

+1

Независимо от того, что вы делаете ** не ** смешивайте два способа доступа, так как вы будете обращаться к вашему SQLite db через две разные собственные общие библиотеки, и, таким образом, повреждение данных/файлов является опцией. Встроенные приложения Nougat/7.0 для Android не разрешают доступ к собственной библиотеке 'SQLite.so' чем-либо, кроме классов Java' Android.Database.Sqlite'. Также помните, что доступ через классы Java 'Android.Database.Sqlite' приведет к генерированным классам ACW и небольшим накладным расходам из-за созданных одноранговых объектов, двух виртуальных машин, двух разных GC на этих объектах и ​​т. Д. – SushiHangover

+0

@ SushiHangover Я думаю, что я был потрясен, увидев так много перечисленных зависимостей пакетов, и был обеспокоен тем, что размер моего приложения будет баллоном в результате - зависимости, похоже, представляют значительную часть .Net! Наверное, такая штука «нормальная» на платформе Xamarin? –

ответ

2

Сколько стоит увеличить размер моего приложения?

Не много, Xamarin links out (удаляет) неиспользованный код при создании приложения в режиме деблокирования. Например, если вы не используете какие-либо методы из System.IO, сборка не будет включен в финальной сборке

простота использования (пакета SQLite.net) перевешивают ли увеличение размера приложения?

Часть из них проста в использовании, и реальное преимущество заключается в том, что вы можете повторно использовать код на iOS или на любых других платформах. Использование Android.Database.Sqlite не поможет вам много, если вы планируете портировать приложение на другие платформы

Что определяет, какие из этих 50+ узлов втянуты в мое приложение?

Зависимости от netstanderd что вытягивать эти 50+ узлов, в противном случае Sqlite-нетто-ПКЛО просто нужна SQLitePCLRaw.* сборки

Там будет хорошая серия объяснения netstanderd одного из инженеров .Net на YouTube здесь - https://www.youtube.com/playlist?list=PLRAdsfhKI4OWx321A_pr-7HhRNk7wOLLY Надеюсь, он ответит на ваши вопросы regarading netstanderd

 Смежные вопросы

  • Нет связанных вопросов^_^