Android用のC ++ライブラリの高速アセンブリ

こんにちはhabrasociety!



多くの人が質問をしています。「Android用に構築したいC ++ライブラリがたくさんあります。 これを行う方法?」 以下の手順は、おそらくこれを行う最も簡単な方法を説明しています。





原材料の主な要件は、gccおよびPOSIXと互換性があることだけです(ただし、あらゆる種類のカットやハックが避けられない場合もあります)。



1. WindowsからAndroid向けC ++で何かをビルドするには、少なくとも次のものをインストールする必要があります。



ネイティブビルドシステム全体はmakeに基づいています。 C ++をコンパイルするndk-buildスクリプトがあります。 お気に入りのライブラリで機能させるには、次の手順を実行する必要があります。



2.ライブラリフォルダーで、default.propertiesファイルにtarget = android-8という行を追加します。



3.ここで、jniフォルダーを作成し、2つのファイルを入れます。



このコンテンツを含むApplication.mk

APP_OPTIM := release APP_PLATFORM := android-8 APP_STL := gnustl_static APP_CPPFLAGS += -frtti APP_CPPFLAGS += -fexceptions APP_ABI := armeabi armeabi-v7a APP_MODULES := MySuperProject
      
      





Android.mkは次のようになります。

 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) GLOBAL_C_INCLUDES := \ $(LOCAL_PATH)/../Source \ <--       LOCAL_SRC_FILES =     .  .cpp        jni LOCAL_MODULE := MySuperProject GLOBAL_CFLAGS := -Werror -O3 -isystem $(SYSROOT)/usr/include/ LOCAL_CFLAGS := $(GLOBAL_CFLAGS) LOCAL_C_INCLUDES := $(GLOBAL_C_INCLUDES) include $(BUILD_STATIC_LIBRARY)
      
      





4.その後、Cygwin Bash Shellを実行する必要があります。jniフォルダーがあるフォルダーに移動し、シェルからコマンドを実行します

 ndk-build
      
      





すべてが正しく行われ、コンパイルエラーがなければ、静的libMySuperProject.aがアセンブルされ(実際には、両方のターゲットでarmeabiとarmeabi-v7aでも2)、プロジェクトにリンクできます。 すべての体の動きは15分以内で完了します。



All Articles