2013-04-02 8 views
6

1)iOSとAndroidネイティブライブラリが利用できる場合、クロスプラットフォームアプリケーションの開発にライブラリを使用するには、適切かつ効率的で簡単な手順は何でしょうか? AndroidライブラリやiOSをバインドしますか? Androidのネイティブライブラリをバインドすると、このバインドされたライブラリをXamarin.iOSアプリケーションで使用できるようになりますか?Xamarin:ネイティブライブラリを使用する

2)Cライブラリが利用できる場合は、このライブラリを使用してクロスプラットフォームアプリケーションを開発できますか?

ありがとうございます!

(Xamarinでちょうど初心者、質問が不適切であると思われる場合の言い訳に)

答えて

2
  1. ネイティブiOSとAndroidのライブラリは通常、非常に異なっている(iOSのライブラリは、一般的にObjective-CのとAndroidのライブラリで書かれていますJavaの場合)、このためにそれぞれのバインディングが異なります。 APIが同一であっても、Objective-CとJavaの違いは、バインディングが異なる必要があるためです。

  2. はい、iOSやAndroidプロジェクトでC++を使用することはできますが、メカニズムは異なります。オプションのカップルがここにあります

    • は、C++ライブラリの管理バインディングを作成するためにこのようなSWIGなどのツールを使用してください。 Thisも興味深い読み物です。

    • C++ライブラリをラップするCライブラリを作成し、マネージコードで使用可能な標準のP/Invokeメカニズムを使用してCライブラリとやり取りします。

+0

ありがとう!使用しているライブラリにはプラットフォーム固有のコードは含まれておらず、デバイスをリモートサーバーに接続するためにのみ使用されます。このライブラリは、Objectve-C、JavaおよびC++で使用できます。私はC#クラスライブラリとしてアクセスするためのバインディングが必要です。だから、もし私がこれらのライブラリのいずれかをバインドすれば、私は別のXamarinプロジェクトで使うことができますか?例:私はC#に利用可能なJavaライブラリをバインドする場合、私もXamarin.iOSプロジェクトでこのバインドされたライブラリを使用できますか? –

+0

いいえ、JavaはAndroid上でのみ動作するため、iOSではJavaバインディング(Javaライブラリ自体)を使用することはできません。ただし、iOSとAndroidの両方でC++バージョンを使用することができます(管理されたバインディングもこの場合共有可能です)。 –

+0

今、私はクロスプラットフォームアプリケーションでライブラリのC++バージョンを使用することに決めました。どうもありがとう。 –

関連する問題