1.编译一个APK文件
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_JAVA_LIBRARIES:= #指定依赖的共享java类库
LOCAL_STATIC_JAVA_LIBRARIES= #指定依赖的静态java类库
#指定源码列表,这里使用系统定义的函数搜寻src目录下的文件形成列表
LOCAL_SRC_FILES=$(call all-java-files-under,src)
LOCAL_MODULE_TAGS:=optinal #指定模块的标签
LOCAL_CERTIFICATE:=shared #指定模块的签名方式
LOCAL_PACKAGE_NAME:=TestApp #指定模块名称
include $(BUILD_PACKAGE)
2.编译一个java共享库
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES=$(call all-java-files-under,src)
LOCAL_MODULE_TAGS:=optinal #指定模块的标签
LOCAL_MODULE:=javadynamiclib #指定模块的名称
include$(BUILD_JAVA_LIBRARY)
3.编译一个java静态库
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES=$(call all-java-files-under,src)
LOCAL_MODULE:=javastaticlib #指定模块的名称
include$(BUILD_STATIC_JAVA_LIBRARY)
4.编译一个java资源文件,类似于framework_res.apk
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_NO_STABDARD_LIBRARIES:= #指定依赖的静态java类库
LOCAL_CERTIFICATE:=shared #指定模块的签名方式
LOCAL_PACKAGE_NAME:=javareslib #指定模块名称
LOCAL_APPT_FLAGS:= -x #定义AAPT工具参数
LOCAL_MODULE_TAGS:=user #指定模块的标签
LOCAL_MODULE_PATH :=$(TARGET_PUT_JAVA_LIBRARIES) #定义模块的安装路径
LOCAL_EXPORT_PACKAGE_RESOURCES := true #值为true,其他apk模块能引用本模块的资源
include $(BUILD_PACKAGE)
5.编译一个可执行文件
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES :=service.cpp
LOCAL_SHARED_LIBRARIES :=libutils #指定需要链接的动态库
ifeq($(TARGET_OS),linux)
LOCAL_CFLAGS +=-DXP_UNIX #定义编译标志
endif
LOCAL_MODULE:=service
include$(BUILD_EXECUTABLE)
6.编译一个native的共享库
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS:=optinal
LOCAL_MODULE :=libnativedynamic
LOCAL_SRC_FILES :=\
native.cpp
LOCAl_SHARED_LIBRARIES :=\
libcutlis \
libutils
LOCAL_STATIC_LIBRARIES :=libnativestatic
LOCAL_C_INCLUDES +=\
$(JNI_H_INCLUDE) \
$(LOCAL_PATH)/../include
LOCAL_CFLAGS += -O
include $(BUILD_SHARED_LIBRARY)
7.编译一个native静态库
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS:=optinal
LOCAL_MODULE :=libnativedynamic
LOCAL_SRC_FILES :=\
native.cpp
LOCAL_C_INCLUDES +=
LOCAL_CFLAGS += -O
include $(BUILD_STATIC_LIBRARY)