1 #源文件路径,call my-dir调用my-dir宏,返回Android.mk的路径 2 LOCAL_PATH := $(call my-dir) 3 4 #生成so 5 include $(CLEAR_VARS) 6 LOCAL_MODULE := First 7 LOCAL_SRC_FILES := firstjni.cpp 8 include $(BUILD_SHARED_LIBRARY) 9 10 #使用第三方so 11 include $(CLEAR_VARS) 12 LOCAL_SRC_FILES := prebuilt/libBaiduMapSDK_v3_2_0_15.so 13 LOCAL_MODULE := BaiduMapSDK_v3_2_0_15 14 include $(PREBUILT_SHARED_LIBRARY) 15 16 #生成可执行文件 17 #CLEAR_VARS让编译系统清除掉一些已经定义过的宏,这些宏的定义是全局的, 18 #当一个GNU MAKE在编译多个模块时,必须清除并重新摄者它们。 19 include $(CLEAR_VARS) 20 #LOCAL_ARM_MODE指定生成的原生程序所使用的ARM指令模式。 21 #arm表示使用32位的arm指令系统。 22 LOCAL_ARM_MODE := arm 23 #LOCAL_MODULE指定模块的名称,即原生程序生成后的文件名。 24 #这里最终将生成名为hello的文件,如果是共享库,将生成libhello.so 25 LOCAL_MODULE := hello 26 #指定C或C++源文件列表 27 LOCAL_SRC_FILES := hello.c 28 #指定生成的文件类型。 29 #BUILD_EXECUTABLE表示生成可执行文件, 30 #BUILD_SHARED表示生成动态库, 31 #BUILD_LIBRARY表示生成静态库 32 include $(BUILD_EXECUTABLE)
注:若使用第三方so文件,第三方so应该放在Android.mk文件所在目录的prebuilt子目录下
附:快速拷贝版
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := First LOCAL_SRC_FILES := firstjni.cpp include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_SRC_FILES := prebuilt/libBaiduMapSDK_v3_2_0_15.so LOCAL_MODULE := BaiduMapSDK_v3_2_0_15 include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_MODULE := hello LOCAL_SRC_FILES := hello.c include $(BUILD_EXECUTABLE)