Использование библиотеки C # с Mono для Android из кода Java? - PullRequest
0 голосов
/ 25 июля 2011

Есть ли возможность использовать библиотеку C # с Mono для Android из кода Java? Это можно сделать из Objective-C в C # (MonoTouch) с флагом «--xcode» в команде mtouch. Но есть ли аналог в Mono для Android?

А есть причины для этого?

спасибо!

Gwennin

1 Ответ

0 голосов
/ 26 июля 2011

[Можно ли] использовать библиотеку C # с Mono для Android из кода Java?

Да. Каждый подкласс Java.Lang.Object имеет Android Callable Wrapper , сгенерированный во время сборки. Имеется Android Callable Wrapper, позволяющий Java-коду вызывать управляемый код (например, чтобы при переопределении Activity.OnCreate () Android фактически мог вызывать управляемое переопределение.

Однако есть несколько ограничений ; в частности, единственными методами, которые объявлены в Android Callable Wrapper, являются переопределенные методы и методы, полученные из реализованных интерфейсов. Это усложняет сценарий Java-> C #.

[Есть] причина для этого?

Да. Существует ряд обстоятельств, при которых вы в настоящее время не можете использовать C #, например, используя типы, которые находятся за пределами android.jar (например, Maps API ). (Существует Android.Runtime.JNIEnv , но это не работает со сценариями создания подклассов.) Таким образом, самый простой способ использовать API-интерфейсы Java - это написать часть кода на Java, а затем интегрировать Java и управляемый код с помощью различных механизмов, включая отдельные действия (используя Activity.startActivity () для запуска управляемого действия из Java), JNIEnv, службы и т. д.

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