Перевод .NET DLL с помощью Monodroid

Я написал сетевую библиотеку с использованием С# и .NET. Разработчики .NET/Mono могут использовать библиотеку для разработки многопользовательских приложений. Я хочу сделать библиотеку доступной на платформе Android, чтобы разработчики Android могли использовать библиотеку. Способен ли Monodroid (Mono для Android) выполнять этот перевод и как лучше всего поступить? Спасибо.


person Santo    schedule 08.12.2011    source источник


Ответы (1)


Если я правильно понимаю вопрос, вы хотите создать DLL с использованием Mono для Android, которую вы предоставляете разработчикам Java для использования? В настоящее время это невозможно, поскольку Mono для Android не просто переводит код с C# на Java. Приложения Mono для Android включают среду выполнения Mono, и код .NET запускается для нее. Он генерирует вызываемые оболочки, чтобы Mono и Dalvik (виртуальная машина Java в Android) могли взаимодействовать друг с другом, но без среды выполнения Mono библиотека DLL не была бы очень полезной.

Если разработчик использует Mono для Android для создания приложения, он может использовать вашу DLL в приложении.

person Greg Shackles    schedule 08.12.2011
comment
Почему моно для Android не может обернуть среду выполнения моно с помощью .Net DLL (как это делается для других приложений .NET). Таким образом, библиотека должна быть доступна для использования нативными разработчиками Android (поскольку у нее есть среда выполнения mono). Теоретически я не вижу большой разницы между приложением .NET и .NET DLL (оба являются решениями/проектами .NET). Если Mono для Android может переводить проекты .NET для запуска непосредственно на Android, то он должен иметь возможность обрабатывать проект .NET, созданный как библиотека. - person Santo; 09.12.2011
comment
Среда выполнения — это то, что знает, как интерпретировать и запускать ваши библиотеки DLL, поэтому они работают на совершенно разных уровнях. Я предлагаю прочитать документы по архитектуре Mono для Android, в которых объясняется, как все настроено: docs. xamarin.com/android/advanced_topics/архитектура - person Greg Shackles; 09.12.2011
comment
Я ознакомился с архитектурой, но все еще немного сбит с толку, поскольку в ней четко указано, что стек Mono для Android включает среду выполнения mono. Вы предполагаете, что переведенная библиотека не будет включать монофоническую среду выполнения, поэтому ее нельзя использовать нативными разработчиками Android. Это правильно? - person Santo; 09.12.2011
comment
Среда выполнения Mono включена как часть приложений Mono для Android, а не библиотек классов. Нет шага сборки, на котором код C# транслируется в код Java. Код .NET в приложении (включая библиотеки классов) запускается в среде выполнения Mono, поэтому библиотека не будет полезна для тех, кто создает свое приложение на Java, поскольку эта среда выполнения не будет интерпретировать код. - person Greg Shackles; 09.12.2011