いくつかの関数の定義を含むdllを作成したいと思います。私はObjective-cとjava環境の両方で関数を使用することができます。
これを行うことさえ可能ですか?
ありがとう!
いくつかの関数の定義を含むdllを作成したいと思います。私はObjective-cとjava環境の両方で関数を使用することができます。
これを行うことさえ可能ですか?
ありがとう!
iOSおよびAndroid用のアプリケーションを作成し、アプリケーションのビジネスロジック(UIではなく)を再利用する場合は、Xamarinを参照してください。
C#で開発し、AndroidやiOSアプリを作成できます。
Xamarin Webサイトから:
iOSとAndroidの間でデータ構造と非UIコードを共有することにより、時間を節約します。
それが役に立てば幸い。
CまたはC++で記述します。これをObjectiveC++の魔法を介してObjectiveC/ Cocoaにリンクし、NDKとJNIを介してAndroid上のJavaにリンクすることができます。それが私のプロジェクトで行っていることです。どちらの場合もコンパイラはGCCであり、RTLは同一ではありませんが、十分に類似しています。
インターフェイスで毛むくじゃらのデータ構造を避け、プリミティブとプリミティブ配列に固執します。そして、当然、プラットフォームの一部を抽象化する必要があります。
-fshort-wcharを使用してコードをコンパイルすることをお勧めします。short
これは、CocoaとJNIの両方のネイティブ文字形式であるために発生します。ただし、RTLのワイド文字列関数は失われますが、Cocoa文字列やJava文字列では使用できません。または、ライブラリ/プラットフォームの境界でUTF-8を使用できます。すべての呼び出しでの変換オーバーヘッド、yaddayadda。
注:いくつかのマイナーなヘルパー関数を再利用したいだけの場合は、それらを2回記述するか、コピー/貼り付けしてから構文を調整する方が簡単です。NDKコードのデバッグは非常に注意が必要です。共有ビットがプロジェクトの25〜30%以上を構成する場合にのみ、この方法を使用してください。私の場合、それは60%が共有されているようなものです。
編集:このようにすると、他のモバイルプラットフォームへの移植は簡単になりますが、それほど多くはありません。具体的には: