大阪で発表したXamarin.Android+NDKの、デモ部分の解説記事です。「Xamarin.Androidでネイティブコードと仲良しになる方法」http://www.slideshare.net/hIDDENxv/xamarinandroidndkXamarin.AndroidでC/C++記述したネイティブコードをプロジェクトに含めて利用するための、シンプルな手順を解説します。NDK環境が整っていること。Studioで解説しているので、他の環境の場合は適宜読み替えていただければと。1.NDKビルド環境を整える2.ビルドしてできたlibsフォルダ以下を、プロジェクトに追加する3.C#からコールする4.ビルドターゲットを追加する1.NDKビルド環境を整えるまずはAndroidアプリプロジェクトを作成します。ndk-buildからみて通常のAndroidアプリプロジェクトにみえるように、プロジェクトフォルダ以下の構成を整えます。プロジェクトにproject.propertiesファイルを追加。project.propertiestarget=android-19ふたつめ、プロジェクトにjniフォルダを作成し、mkファイルとソースを追加。b;}ここまでできたら、ターミナルを開いてビルドしてみます。プロジェクトフォルダまで移動して、ndk-buildを実行。下記のようなメッセージが表示されれば成功です。libs/x86/libNativeTest.so2.ビルドしてできたlibsフォルダ以下を、プロジェクトに追加するNDKビルドに成功すると、プロジェクトフォルダ下にlibsフォルダが作成されているはず。libsフォルダには、各プラットフォーム向けのライブラリファイルができているので、必要なぶんだけプロジェクトに追加し、ビルドアクションを「AndroidNativeLibrary」に設定します。3.C#からコールするこのネイティブバイナリをC#コードからコールするには、C#でWindowsアプリを書いていたことのある人にはおなじみの、DllImport属性を使います。今回はテンプレートで生成されたMainActivityに追記してみます。b);そのままボタンタッチ時の処理を書き換えて、ネイティブコード実行の確認ができるようにします。b));};実行するとこのように。無事コールされているのが確認できます。4.ビルドターゲットを追加するここまでネイティブコードのビルドにはターミナルからndk-buildを実行していましたが、これでは不便。そこでプロジェクトファイル(csproj)に下記のような<Target>タグを追加します。</Target></Project>(いただいたコメントにより、追記修正しました)ここまでネイティブコードのビルドにはターミナルからndk-buildを実行していましたが、これでは不便。いうわけで、プロジェクト設定のカスタムコマンドという機能を使って、プロジェクトビルド時にNDKビルドも実行できるよう設定します。この例では、カスタムコマンドにndk-buildのフルパスを記載しているんですが、チーム開発などには不便ですね。環境設定から値を読み出す方法とかご存知のかたいたらコメントなどいただければありがたいです。まとめこれで、Xamarin.AndroidプロジェクトでNDKネイティブコード含めてビルド・実行する環境が整いました。プロジェクト内に一元管理することで、ビルド・デバッグのテンポがよくなる、リポジトリを分散させなくてすむなどのメリットが生まれるかと。upLoginユーザーは見つかりませんでした。