0

Java コードから Mono for Android で C# ライブラリを使用する可能性はありますか? mtouch コマンドの「--xcode」フラグを使用して、Objective-C から C# (MonoTouch) に変換することができます。しかし、Mono for Android に相当するものはありますか?

そして、それを行う理由はありますか?

ありがとう!

グウェニン

4

1 に答える 1

0

【できること】JavaコードからMono for AndroidでC#ライブラリを利用することはできますか?

はい。すべての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がありますが、サブクラス化のシナリオでは機能しません。) そのため、Java API を利用する最も簡単な方法は、Java でコードの一部を記述してから、Java とマネージド コードを統合することです。個別のアクティビティ (Activity.startActivity() を使用して Java からマネージド アクティビティを起動する)、 JNIEnv、サービスなど、さまざまなメカニズムを介して。

于 2011-07-26T15:44:11.790 に答える