Andorid中mk文件的一些解释
来源:互联网 发布:linux运维开发 编辑:程序博客网 时间:2024/06/06 03:55
本文是参照网上一些说明以及自己的总结结合起来,仅供参考。
android中源码模块写编译会有一个脚本文件Android.mk,其中有一些用于编译的语法
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
这两行代码的作用是:
设置当前模块的编译路径为当前文件夹路径。
清理(可能由其他模块设置过的)编译环境中用到的变量。
为了方便模块的编译,Build 系统设置了很多的编译环境变量。要编译一个模块,只要在编译之前根据需要设置这些变量然后执行编译即可。它们包括:
LOCAL_SRC_FILES:当前模块包含的所有源代码文件。
LOCAL_MODULE:当前模块的名称,这个名称应当是唯一的,模块间的依赖关系就是通过这个名称来引用的。
LOCAL_C_INCLUDES:C 或 C++ 语言需要的头文件的路径。
LOCAL_STATIC_LIBRARIES:当前模块在静态链接时需要的库的名称。(以.a形式结尾的库文件)
LOCAL_SHARED_LIBRARIES:当前模块在运行时依赖的动态库的名称。(以.so形式结尾的库文件)
LOCAL_CFLAGS:提供给 C/C++ 编译器的额外编译参数。
LOCAL_JAVA_LIBRARIES:当前模块依赖的 Java 共享库。
LOCAL_STATIC_JAVA_LIBRARIES:当前模块依赖的 Java 静态库。
LOCAL_PACKAGE_NAME:当前 APK 应用的名称。
LOCAL_CERTIFICATE:签署当前应用的证书名称。
LOCAL_MODULE_TAGS:当前模块所包含的标签,一个模块可以包含多个标签。标签的值可能是 debug, eng, user,development 或者 optional。其中,optional 是默认标签。标签是提供给编译类型使用的。不同的编译类型会安装包含不同标签的模块,关于编译类型的说明如表 7 所示:
(call my-dir)的功能由编译器提供,被用来返回当前目录的地址(这里的当前目录里包含Android.mk这个文件本身)
在Android.mk中打印输出信息的方法是:$(warning string)或者$(error string),warning 表示打印后继续编译,error表示编译到这位置后停止编译。
查看打印信息在编译的log中,还可以加关键字,比如:$(warning "sdd = $(MTK_PLATFORM)")
可以LOCAL_SRC_FILES := $(call all-subdir-java-files)这种形式来包含local_path目录下的所有java文件。
include $(BUILD_SHARED_LIBRARY)(编译动态库)
include $(BUILD_STATIC_LIBRARY)(编译静态库
include $(BUILD_EXECUTABLE))(表示以一个可执行程序的方式进行编译。)
LOCAL_OVERRIDES_PACKAGES此变量可以使其他的模块不加入编译,如源码中DeskClock的android.mk有LOCAL_OVERRIDES_PACKAGES := AlarmClock
CLEAR_VARS这个变量由编译器提供,并且指明了一个GNU Makefile文件,这个功能会清理掉所有以LOCAL_开头的内容(例如 LOCAL_MODULE、
LOCAL_PATH表示工程的根目录:比如在vendor/mediatek/tclm2m/proprietary/basepackage_system.mk定义了$(LOCAL_PATH)/app,该mk对应的是basepackage_system工程下的app路径,
内置apk路口:vendor/lewa/prebuilt/operator/[project]/system(不可卸载应用),(vendor/operator/app/可卸载应用)
all-subdir-makefiles: 返回一个位于当前'my-dir'路径的子目录中的所有Android.mk的列表。
this-makefile: 返回当前Makefile 的路径(即这个函数调用的地方)
parent-makefile: 返回调用树中父 Makefile 路径。即包含当前Makefile的Makefile 路径。
grand-parent-makefile:返回调用树中父Makefile的父Makefile的路径
- Andorid中mk文件的一些解释
- Android.mk文件的解释
- linux andorid.mk文件解析
- Andorid.mk 文件手动编译
- Android .mk文件中需要注意的一些宏
- .mk文件解释
- 关于andorid Intent组件的一些问题的解释
- Andorid中一些重要的代码片段
- 一些开源项目中注释文件的解释
- Android中Android.mk文件的使用
- Android NDK 中mk文件的书写
- android中MK文件的写法
- Android中各类.mk文件的编写
- android中Android.mk文件的写法
- 关于android的mk文件的一些见解
- MTK Projiectconfig.mk文件详细解释
- Android.mk 文件语法解释(全)
- 头文件的一些宏解释
- js面向对象类
- 汉诺塔问题
- hdu 2846 Repository (字典树)
- 面试题1——Java的Exception和Error面试题10问10答
- 如何使用Loader来动态载入一个基于item的Component
- Andorid中mk文件的一些解释
- Android 4.0的图形硬件加速及绘制技巧(4)
- Cloud Computing 之 Service models
- iOS ,UITableViewDataSource 和 UITableViewDelegate协议中常用方法
- iOS app在AppStore的各种状态说明
- dp 与px互相转换
- [算法]给一个满二叉树,求最底层最右边的节点
- 容易犯的javascript小错误
- 关于eclipse更新SDK失败问题处理