Android–帶有動態庫、靜態庫、Jar包的makefile編寫

來源:互聯網
上載者:User

在Linux環境下Android開發過程中,經常會用到第三方的靜態庫、動態庫、jar包來開發自己的應用,那麼,如何編寫這類應用的makefile呢?
首先,帶有動態庫的makefile編寫:

12345678910
include $(CLEAR_VARS)LOCAL_MODULE := libfreewrite-jni.so LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)LOCAL_SRC_FILES := libs/$(LOCAL_MODULE)OVERRIDE_BUILD_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES) include $(BUILD_PREBUILT)

將上面的代碼添加在應用最外層的Android.mk檔案最後面即可,其它地方也可,但是注意添加過程中不要破壞原有代碼的結構,例如將下麵包含jar包的代碼隨意添加到本代碼塊中間是不對的,應該放在該代碼塊的前面後者後面。
上面要添加的動態庫的名稱為:libfreewrite-jni.so
所在的路徑為:/libs/libfreewrite-jni.so

第二,jar包的添加:

123456
include $(CLEAR_VARS)  LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libvDm:libs/com.redbend.vdm.jar \    libvDmComm:libs/com.redbend.vdm.comm.jar \    libvDmDdl:libs/com.redbend.vdm.ddl.jar \    libvDmFumo:libs/com.redbend.vdm.fumo.jarinclude $(BUILD_MULTI_PREBUILT)

以上代碼中,形如“libvDm:”的作用應該類似與程式設計語言中的引用,或者說叫重新命名;另外,感覺jar包的添加,貌似和靜態庫是一樣的,或者jar包本身就類似於靜態庫吧?有點小疑問……

第三,靜態庫的添加:
下面的Android.mk完整程式是編譯產生一個.so

1234567891011121314151617181920212223242526
LOCAL_PATH := $(call my-dir) ### shared library include $(CLEAR_VARS) #需要編譯的本地源檔案LOCAL_SRC_FILES := \hisense/com_hisense_inputmethod_CskSmartEngDecoderService.cpp LOCAL_C_INCLUDES += $(JNI_H_INCLUDE)LOCAL_LDLIBS += -lpthread#將要產生.so動態庫的名稱LOCAL_MODULE := libjni_csksmarteng_hisenseimeLOCAL_PRELINK_MODULE := falseLOCAL_SHARED_LIBRARIES := libcutils libutils #包含靜態庫libhisensecsk2smartengarmLOCAL_STATIC_LIBRARIES := libhisensecsk2smartengarm #編譯產生一個.so動態庫include $(BUILD_SHARED_LIBRARY) #指示Static Libraries所在的目錄為/lib/libhisensecsk2smartengarm#規則由lib/Android.mk檔案定義include $(LOCAL_PATH)/lib/Android.mk

另附,靜態庫所在檔案夾內的Android.mk檔案:

123
LOCAL_PATH := $(my-dir) $(call add-prebuilt-files, STATIC_LIBRARIES, libhisensecsk2smartengarm.a)

原文地址

http://xiaohang.org/2011/04/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.