Gnu ビルド ツール (gnu makefile) を使用する巨大なサード パーティのネイティブ ライブラリを使用して、Android アプリケーションを作成したいと考えています。
私の質問は、Android ビルド システムまたは Android NDK を使用してこれらのライブラリをビルドするために、これらのライブラリの「Android.mk」ファイルを作成する方法です。
前もって感謝します
Gnu ビルド ツール (gnu makefile) を使用する巨大なサード パーティのネイティブ ライブラリを使用して、Android アプリケーションを作成したいと考えています。
私の質問は、Android ビルド システムまたは Android NDK を使用してこれらのライブラリをビルドするために、これらのライブラリの「Android.mk」ファイルを作成する方法です。
前もって感謝します
実行可能な唯一の方法は、NDKmakefileを作成することです。多くの大きなライブラリがそのように移植されています。通常、スクリプトを実行しconfigure
てconfig.hファイルとconfig.makファイルを生成する必要があります。config.makを使用してソースを一覧表示します。AndroidのNDKで構築されるいくつかの人気のあるライブラリを移植するためのチュートリアルがネット上にあります。私はfreetype、ffmpeg、SDL、DevILなどで成功しました。
次のトリックを使用できます: agccをダウンロードし、ライブラリを でコンパイルします
./configure CC=agcc CXX=agcc --host=arm-linux-androideabi && make
。その後、次のように単純に作成しますjni/Android.mk
。
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := jni.cpp # this file will provide native methods for java part
LOCAL_LDLIBS += libYourLibraryBuiltWithGNUToolchain.a
LOCAL_MODULE := YourSoLibrary
include $(BUILD_SHARED_LIBRARY)
その後、ndk-build スクリプトを使用して so ライブラリをビルドできます。
ndk の最近のリリースでは、Android の独自性の大部分をカプセル化したスタンドアロン ツールチェーンを生成できるため、通常の gcc とサポート プログラムのように呼び出すことができます。これは、既存のプロジェクト ビルド システムでの使用にある程度適していますが、クロス コンパイルの場合と同様に、ホスト上でターゲット機能のテスト コードを実行できることを前提とする configure スクリプトは失敗します。
私が理解している限り、メイクファイルをAndroid形式に変換する必要があります:(そしてndk_buidlを使用してビルドする必要があります