Android項目使用外部.so - prebuild library on android

關於Android項目中使用外部編譯好的library在網上也有些介紹,基本都是把相應的.so文件拷貝到android工程的 libs/armabi 目錄中,其實這種方法不地道,而且很多時候滿足不了要求,你無法在你的native code中使用這個.so中的features,因爲你每次從新ndk-build的時候相應的lib目錄會被更新,你拷貝進去的.so會被刪除,編譯不能完成。這種情況可以參考ndk-docs中的 PREBUILTS.html 。基本過程就是在jni目錄下創建一個放置你要引入的.so的目錄,然後寫一個如下的Android.mk

   LOCAL_PATH := $(call my-dir)

 

   include $(CLEAR_VARS)

   LOCAL_MODULE := foo-prebuilt

   LOCAL_SRC_FILES := libfoo.so

   include $(PREBUILT_SHARED_LIBRARY)


在你需要引入這個.so的Android.mk中加入如下內容,

    include $(CLEAR_VARS)

    LOCAL_MODULE := foo-user

    LOCAL_SRC_FILES := foo-user.c

    LOCAL_SHARED_LIBRARIES := foo-prebuilt

    include $(BUILD_SHARED_LIBRARY)


當然可能還需要一些頭文件的引入,那些就簡單了。
發佈了41 篇原創文章 · 獲贊 3 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章