通过Android.mk添加一个编译模块到系统中的顺序如下

①LOCAL_PATH

②CLEAR_VARS

③LOCAL_SRC_FILES

④LOCAL_CFLAGS(可选)

⑤LOCAL_MODULE

⑥LOCAL_STATIC_LIBRARIES(可选)

⑦BUILD_XXX

 

(12)Android.mk常用的变量

变量名 说明
LOCAL_PATH 用于确定源码所在的目录,最好把它放在CLEAR_VARS变量引用的前面,因为它不会被清除,每个Android.mk只需要定义
一次即可。
CLEAR_VARS 它清空了很多以LOCAL_开头的变量(LOCAL_PATH除外)。由于所有的MakeFile都是在一个编译环境下执行的,因此
变量的定义理论上是全局的,在每个模块编译开始前进行清理工作是必要的。
LOCAL_MODULE 模块名,需保证在整个编译系统中是唯一存在的,而且中间不可以有空格
LOCAL_MODULE_PATH 模块的输出路径
LOCAL_SRC_FILES 模块编译过程中涉及到的源文件。如果是JAVA程序,可以考虑调用all-subdir-java-files来一次性添加目录(包括子目录)下所有的java文件
因为有LOCAL_PATH,这里只需要给出文件名(相对路径)即可;而且编译系统有比较强的推导功能,可以自动计算依赖关系。
LOCAL_CC 用于指定C编译器
LOCAL_CXX 用于指定C++编译器(http://www.my516.com)
LOCAL_CPP_EXTENSION 用于指定特殊的C++文件后缀名
LOCAL_CFLAGS C语言编译时的额外选项
LOCAL_CXXFLAGS C++语言编译时的额外选项
LOCAL_C_INCLUDE 编译C和C++程序所需要的额外头文件
LOCAL_STATIC_LIBRARIES 编译所需的静态库列表
LOCAL_SHARED_LIBRARIES 编译时所需要的动态库列表
LOCAL_JAVA_LIBRARIES 编译时所需要的JAVA类库
LOCAL_LDLIBS 编译时所需要的链接选项
LOCAL_COPY_HEADERS 安装应用程序时所需要复制的头文件列表,需要和LOCAL_COPY_HEARERS_TO变量配合使用
LOCAL_MODULE_CLASS 标识所编译模块最后放置的位置。ETC表示放置在/system/etc.目录下,APPS表示放置在/system/app目录下,SHARED_LIBRARIES表示放置在/system/lib目录下。如果具体指定,则编译的模块不会放到编译系统中,最后会在out对应product的obj目录下的对应目录中。
LOCAL_MODULE_TAGS 当前模块所包含的标签,一个模块可以包含多个标签。标签的值可能是eng、user、debug、development、optional。其中,optional是默认标签。
LOCAL_DEX_PREOPT apk的odex优化开关,默认是false
$(call my-dir) 获取当前文件夹的路径
$(call all-java-files-under,<src>) 获取指定目录下的所有java文件
$(call all-c-files-under, <src>) 获取指定目录下的所有c文件
$(call all-Iaidl-files-under, <src>) 获取指定目录下的所有AIDL文件
$(call all-makefiles-under, <folder>) 获取指定目录下的所有Make文件
$(call intermediates-dir-for, <class>, <app_name>, <host or target>, <common?>) 获取Build输入的目标文件夹路径
BUILD_HOST_STATIC_LIBRARY
BUILD_HOST_SHARED_LIBRARY
BUILD_STATIC_LIBRARY
BUILD_RAW_STATIC-LIBRARY
BUILD_SHARED_LIBRARY
BUILD_EXECUTABLE
BUILD_RAW_EXECUTABLE
BUILD_HOST_EXECUTABLE
BUILD_PACKAGE
BUILD_HOST_PREBUILT
BUILD_PREBUILT
BUILD_MULTI_PREBUILT
BUILD_JAVA_LIBRARY
BUILD_STATIC_JAVA_LIBRARY
BUILD_HOST_JAVA_LIBRARY
BUILD_DROIDDOC
BUILD_COPY_HEADERS
BUILD_KEY_CHAR_MAP

posted @ 2019-08-30 17:26  李艳艳665  阅读(1415)  评论(0编辑  收藏  举报