關於Android.mk編寫

  1. LOCAL_PATH := $(call my-dir) //獲取當前路徑
  2. include $(CLEAR_VARS) //清除變量
  3. LOCAL_JAVA_LIBRARIES := xxx //引用動態java庫xxx
  4. LOCAL_STATIC_JAVA_LIBRARIES := xxx //引用靜態java庫xxx
  5. LOCAL_SRC_FILES := $(call all-java-files-under, src) //設置java源代碼文件列表爲src目錄下所有java文件
  6. LOCAL_PACKAGE_NAME := xxx //設置目標包名稱爲xxx(編譯目標爲apk時使用),可在PRODUCT_PACKAGES列表中加入xxx表示編譯該包
  7. LOCAL_MODULE_TAGS := tests //表示編譯目標爲測試文件,編譯之後目標會被放入到/data/app/目錄下
  8. include $(BUILD_PACKAGE) //編譯應用程序包(即apk文件)
  9. LOCAL_MODULE_TAGS := optional //表示該模塊可選,需要在PRODUCT_PACKAGES列表中加入相應的名稱纔會被編譯。編譯之後目標會被放入到/system/app/目錄下。
  10. LOCAL_MODULE := xxx //設置目標模塊名稱爲xxx(複製源文件到目標文件夾時使用),可在PRODUCT_PACKAGES列表中加入xxx表示編譯該模塊
  11. LOCAL_SRC_FILES := xxx //設置模塊的源文件路徑
  12. LOCAL_MODULE_PATH := xxx //設置模塊的目標輸出路徑,例如LOCAL_MODULE_PATH := $(TARGET_OUT)/../data/表示輸出到data目錄。注意這裏$(TARGET_OUT)表示的是system/目錄。
  13. include $(BUILD_PREBUILT) //編譯模塊

例子程序:

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_SRC_FILES := test.c
LOCAL_MODULE := hello_test
include $(BUILD_EXECUTABLE)

 

test.c

#include<stdio.h>
#include <fcntl.h>

int main()
{
        char buf[111];
        int fp=open("/dev/HELLO",O_RDWR);
        read(fp,buf,10);
        printf("%s\n",buf);
        return 0;
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章