您的位置:首页 > 移动开发 > Android开发

Android MakeFile 常用变量/函数总结

2017-12-01 16:54 399 查看
一、常用变量

LOCAL_PATH:= $(call my-dir)

必须放在所有的include $(CLEAR_VARS)之前 ,指的是将LOCAL_PATH变量定义成本文件所在目录路径。


include (CLEARVARS)include(BUILD_STATIC_LIBRARY)

一组代码块的头尾部分,尾部参数即要编译的目标库的类型。参数有:BUILD_STATIC_LIBRARY(编译成静态库,后缀是 .a);BUILD_SHARED_LIBRARY(编译成动态库,后缀是 .so);BUILD_EXECUTABLE(编译成可执行程序);BUILD_PACKAGE (编译一个apk);BUILD_STATIC_JAVA_LIBRARY(编译java静态库);BUILD_MULTI_PREBUILT();BUILD_PREBUILT(预编译);


LOCAL_MODULE

生成模块的名称(注意应用名是LOCAL_PACKAGE_NAME)


LOCAL_PACKAGE_NAME

package的名字,这个名字在脚本中将标识这个app或package。


LOCAL_SRC_FILES

基于了LOCAL_PATH ,此变量赋值所有要编译的 文件。如果是java文件可以赋值 $(call all-java-files-under , src )


LOCAL_MODULE_TAGS

后接 user /eng /tests/ optional
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在 所有版本下都编译,默认是optional


LOCAL_CERTIFICATE

赋值platform //指定  使用的哪种key 来给apk签名,platform 就是 指 用 platform.pk8和platform.x509.pem两个文件 来 签名。用这两个key签名后apk才真正可以放入系统进程中;


LOCAL_C_INCLUDES

这个是用来指定在编译时即将使用的c/c++头文件的位置,以当前目录为起点。


LOCAL_32_BIT_ONLY

后接 ture, 指的是值编译32位,没有都编译。


LOCAL_CFLAGS

为C/C++编译器定义额外的标志(如宏定义)


LOCAL_PRIVILEGED_MODULE

后接true 。有的话,编译到system/priv-app/目录下,没有的话默认到/system/app目录下


LOCAL_PROGUARD_FLAG_FILES

混淆配置文件引用,一般是 proguard.flags文件(本文件目录下的混淆配置文件)


LOCAL_RESOURCE_DIR

本地资源目录


LOCAL_STATIC_JAVA_LIBRARIES

编译时引用的java静态库(打包)


LOCAL_JAVA_LIBRARIES

编译时引用的共享java库(不打包)


LOCAL_SHARED_LIBRARIES

编译时引用的C/C++ 动态库


LOCAL_STATIC_LIBRARIES

编译时引用的C/C++ 静态库


二、常用函数

ifeq endif

ifneq endif

if 相同 、if 不同


$()

函数


$(strip string)

名称:去空格函数
功能: 去掉string字符串开头和结尾的空字符
返回:返回被去掉空格的字符串


$(subst , , )

名称:字符串替换函数
功能:把字符串<text> 中欧欧诺个的<from>字符串替换成 <to> 字符串
返回:返回被替换后的字符串


$(patsubst , , )

名称:模式字符串替换函数
功能:查找<text> 中的单词(单词以 空格、TAG 或 回车换行分隔)是否符合模式<pattern>, 如果匹配的话,则以<replacement> 替换.
返回:返回被替换后的字符串


$(findstring , )

名称:查找字符串函数
功能:在字符串<in>中查找<find> 字符串
返回:如果找到返回<find>字符串,否则返回空字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: