Библиотека C # .dll в приложении для Android

В настоящее время я использую Monodroid для разработки приложения для Android. Я довольно новичок в телефонных приложениях, поэтому я смущен несколькими вещами:

  1. Что по определению является андроидной библиотекой? Я использую шаблон Mono для создания библиотеки Android: создайте Mono для библиотеки классов Android => напишите код и вставьте в .dll => запустите с эмулятором из Visual Studio, и он отлично работает в эмуляторе. Но является ли DLL-файл андроидной библиотекой? Или он преобразуется Mono перед работой над эмулятором, а библиотека REAL для Android должна быть JAR?

  2. Могу ли я напрямую использовать мою определенную .dll, написанную на C #, чтобы сделать это приложение? Я попробовал его в Mono, прямо ссылаясь на него в своем приложении для Android, и он строит, никаких ошибок. Но когда эмулятор запускает это приложение, он застревает (по-прежнему нет ошибки) – какой правильный способ использовать c # .dll в проекте Android-приложения?

Я понимаю, что существует довольно пара тем, обсуждающих связь между c # и android и моно, но после прочтения я до сих пор не могу обойти эту проблему с ссылкой на эту библиотеку, поэтому, если кто-нибудь может предложить какие-либо намеки / мысли,

Solutions Collecting From Web of "Библиотека C # .dll в приложении для Android"

  1. Сгенерированная DLL компилируется в отношении профиля Mono для Android , который основан на Moonlight (реализация Mono Silverlight). Во время выполнения .NET-код запускается непосредственно во время выполнения Mono, которое выполняется как часть вашего приложения . Когда .NET-код подклассифицирует что-то со стороны Java (например, Java.Lang.Object), Mono for Android генерирует вызываемые оболочки для обработки связи между временем выполнения.
  2. Технически вы можете использовать обычную .NET DLL в своем приложении Mono для Android, но я бы не рекомендовал его. Профиль, выставленный Mono для Android, намного меньше, чем в полной платформе .NET (и даже не совсем эквивалентен Silverlight), поэтому, если ваша DLL ссылается на метод, который не найден в Mono для Android, ваш Приложение выйдет из строя. Вместо этого я бы рекомендовал создать отдельную библиотеку классов для вашего приложения и обмениваться исходными файлами между проектами, используя привязку файлов. В моем сообщении в блоге приведен пример того, как это сделать.