Android.mk
1. LOCAL_PATH := $(call my-dir)
作用:用于在查找源文件。其中“my-dir”是由编译系统提供的宏函数,用于返回当前的路径(即包含Android.mk的文件目录)。
2. include (BUILD_SYSTEM)/clear_vars.mk。
3. LOCAL_MODULE_TAGS := optional
作用:指定该模块在哪个版本下编译。LOCAL_MODULE_TAGS :=user/ eng /tests/ optional
user:指定该模块只在user版本下才编译
eng:指定该模块只能在eng版本下才编译
tests:指定该模块只能在tests版本下才编译
optional:指该模块在所有版本下都编译
4. LOCAL_SRC_FILES := $(call all-java-files-under, src)
这是要编译的源代码文件列表。只要列出要传递给编译器的文件,因为编译系统会自动计算依赖。
all-java-files-under在definitions.mk中定义(在build/core中)
5. LOCAL_STATIC_JAVA_LIBRARIES := comon
作用:引入第三方jar包
语法:LOCAL_STATIC_JAVA_LIBRARIES :=library_name
其中library_name可以理解为一个命名空间
所以引入comon,这样就可以使用comon中的类文件了。
6. LOCAL_PACKAGE_NAME := Contacts
这个变量表示了这个包的名字,即这个文件最终生成的apk的名称
7.LOCAL_CERTIFICATE := shared
指定签名时以那种密钥签名。有platform、shared、media、testkey
8. LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
作用主要是压缩、优化、混淆类文件,具体的功能还不理解。
9. include (BUILD_SHARED_LIBRARY),表示将目录下的文件编译为共享库文件(即so档),默认存在/system/lib下。
10. include (LOCAL_PATH))
表示需要build该目录下的子目录的文件,这样编译系统就会在当前目录下的子目录寻找Android.mk来编译so库等其他程序。
Android.mk文件是用来向编译系统描述项目组织和编译方式,实际上是GNU make文件的一小片段,它会被编译系统解析一次或多次。
这个文件内容如下:
LOCAL_PATH := (call my-dir)赋值给变量LOCAL_PATH,这样才可以找到源码和相应的资源文件。
include $(CLEAR_VARS)
清除前面使用的临时变量。
LOCAL_STATIC_JAVA_LIBRARIES := libarity
使用静态的JAVA库,名称为 libarity。
LOCAL_SRC_FILES := $(call all-Java-files-under, src)
这里是指明需要编译的文件,也就是说明源码的文件列表。这里编译所有src目录下的java源码。
LOCAL_PACKAGE_NAME := Calculator
这里指明编译出来包的名称,计算器的包名称就是Calculator.apk。
include (BUILD_SYSTEM)/package.mk。就是在这个文件详细地定义怎么样生成包文件。
##################################################
include $(CLEAR_VARS)
清除前面使用的临时变量。
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libarity:arity-1.3.3.jar
include $(BUILD_MULTI_PREBUILT)
预先编译这个依赖库。
网友评论