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