私は現在試みていることと少し混乱しています:NDKを介してAndroidで使用するためにCライブラリをクロスコンパイルしたいので、JNIラッパーを作成し、AndroidJavaコードからその関数の一部を呼び出すことができます。
このガイドに従って、libopus(プロジェクトに含めたいライブラリ)をクロスコンパイルしました:http://mortoray.com/2012/08/21/android-ndk-cross-compile-setup-libpng-and-freetype/ whichつまり、現在/ opt / android-ext /にスタンドアロンのツールチェーンがあり、クロスコンパイルしたライブラリ(libopus.a、libopus.soなど)を含むlibフォルダーがあります。
また、Androidプロジェクトにjniフォルダーがあります。このフォルダーには、必要なJNIバインディングを含むCコードが含まれており、Javaコードから呼び出すことができますが、何も実行されません(呼び出すことはできますが、空白の関数です)。 。これは、私のプロジェクトには、「libopusUtilsNative.so」(ラッパー)を含む/ lib/armeabiディレクトリがあることを意味します。
私の質問は:
クロスコンパイルしたばかりのライブラリをプロジェクトに追加するには、たとえば、すでに持っているCソースコードファイルに対して#include呼び出しを実行して、ライブラリ関数にアクセスできるようにするにはどうすればよいですか?私は次の方法で少し迷っています:
クロスコンパイルしたライブラリをプロジェクトに含めます。
私が作成したラッパーコードを作成する方法には、それが含まれています(これは、Android.mkファイルにコードを追加することと関係があると思いますが、私にはわかりません)。