Android.mk增加本地程式和庫的常用模版

來源:互聯網
上載者:User

標籤:des   android   style   blog   color   ar   java   sp   strong   

Android.mk增加本地程式和庫的常用模版


Android中增加本地程式或者庫,這些程式和庫與其所在路徑沒有關係,只與它們的設定檔Android.mk有關。Android.mk檔案中能夠主要包含一些系統公用的宏。在一個Android.mk中可以產生多個可執行程式、動態庫或者靜態庫。

A,編譯C/C++應用程式的模板

 

    #Demo Exe     LOCAL_PATH := $(call my-dir)     #include $(CLEAR_VARS)     LOCAL_SRC_FILES:= main.c     LOCAL_MODULE:= Demo_exe     #LOCAL_C_INCLUDES :=     #LOCAL_STATIC_LIBRARIES :=     #LOCAL_SHARED_LIBRARIES :=     include $(BUILD_EXECUTABLE)


(解釋::=是賦值的意思,+=是追加的意思,$是引用某變數的值)BUILD_EXECUTABLE表示以一個可執行程式的方式進行編譯。

補充說明:

include$(BUILD_PACKAGE) 則是編譯出一個apk,

include$(BUILD_STATIC_JAVA_LIBRARY)則是編譯出jar包。

B,編譯靜態庫的模板

     #Demo Static Lib     LOCAL_PATH := $(call my-dir)     include $(CLEAR_VARS)     LOCAL_SRC_FILES:= /              helloworld.c     LOCAL_MODULE:= libdemo_static     #LOCAL_C_INCLUDES :=     #LOCAL_STATIC_LIBRARIES :=     #LOCAL_SHARED_LIBRARIES :=     include $(BUILD_STATIC_LIBRARY)

一般的和上面相似,BUILD_STATIC_LIBRARY表示編譯一個靜態庫.a檔案。靜態庫不會複製到的APK包中,但是能夠用於編譯共用庫。

C,編譯動態庫的模板

 

    #Demo Shared Lib     LOCAL_PATH := $(call my-dir)     include $(CLEAR_VARS)     LOCAL_SRC_FILES:= /              helloworld.c     LOCAL_MODULE:= libdemo_shared     TARGET_PRELINK_MODULES := false     #LOCAL_C_INCLUDES :=     #LOCAL_STATIC_LIBRARIES :=     #LOCAL_SHARED_LIBRARIES :=      include$(BUILD_SHARED_LIBRARY)



一般的和上面相似,BUILD_SHARED_LIBRARY表示編譯一個動態庫。

     以上三者的產生結果分別在如下,generic依具體target會變:

out/target/product/generic/obj/EXECUTABLE

out/target/product/generic/obj/STATIC_LIBRARY

out/target/product/generic/obj/SHARED_LIBRARY


     每個模組的目標檔案夾分別為:


可執行程式:XXX_intermediates

靜態庫:     XXX_static_intermediates

動態庫:     XXX_shared_intermediates

 

在Android.mk檔案中,還可以指定最後的目標安裝路徑,用LOCAL_MODULE_PATH和LOCAL_UNSTRIPPED_PATH來指定。不同的檔案系統路徑用以下的宏進行選擇:

TARGET_ROOT_OUT:表示根檔案系統out/target/product/generic/root。TARGET_OUT:表示system檔案系統out/target/product/generic/system。TARGET_OUT_DATA:表示data檔案系統out/target/product/generic/data。OUT_DIR:代碼工程編譯時間的out組建目錄PRODUCT_OUT:映象組建目錄


用法樣本如下:

 

LOCAL_MODULE_PATH :=$(TARGET_ROOT_OUT)

Android.mk增加本地程式和庫的常用模版

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.