美文网首页
首次解析Android.mk

首次解析Android.mk

作者: 悟剑声 | 来源:发表于2016-08-11 17:44 被阅读295次

    SystemUI包中的Android.mk

    (android-5.1.0-r3)

    #首先必须定义好LOCAL_PATH变量。
    #它用于在开发树中查找源文件。
    LOCAL_PATH:= $(call my-dir)
    
    #指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量( LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES等),
    #除LOCAL_PATH 。因为所有的编译控制文件都在同一个GNU MAKE执行环境中,所有的变量都是全局的。
    include $(CLEAR_VARS)
    
    #user: 指该模块只在user版本下才编译
    #eng: 指该模块只在eng版本下才编译
    #tests: 指该模块只在tests版本下才编译
    #optional:指该模块在所有版本下都编译 
    LOCAL_MODULE_TAGS := optional
    
    #这是要编译的源代码文件列表。
    LOCAL_SRC_FILES := $(call all-java-files-under, src) \
        src/com/android/systemui/EventLogTags.logtags
    
    #指定依赖的静态java类库
    LOCAL_STATIC_JAVA_LIBRARIES := Keyguard
    #指定依赖的共享java类库
    LOCAL_JAVA_LIBRARIES := telephony-common
    
    #指定生成apk的名字
    LOCAL_PACKAGE_NAME := SystemUI
    #指定签名key
    #不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名。
    LOCAL_CERTIFICATE := platform
    #声明app需要放在/system/priv-app
    LOCAL_PRIVILEGED_MODULE := true
    
    #指定不需要混淆的native方法与变量的proguard.flags文件
    LOCAL_PROGUARD_FLAG_FILES := proguard.flags
    
    #指定资源路径,默认在$(LOCAL_PATH)/res
    LOCAL_RESOURCE_DIR := \
        frameworks/base/packages/Keyguard/res \
        $(LOCAL_PATH)/res
    #自动添加资源
    LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.keyguard
    
    #编译
    include $(BUILD_PACKAGE)
    #执行子目录下的makefile
    include $(call all-makefiles-under,$(LOCAL_PATH))
    

    其他

    • 变量
      LOCAL_PATH - 编译时的目录
      LOCAL_MODULE - 编译的目标对象
      LOCAL_SRC_FILES - 编译的源文件
      LOCAL_C_INCLUDES - 需要包含的头文件目录
      LOCAL_SHARED_LIBRARIES - 链接时需要的外部库
      LOCAL_PRELINK_MODULE - 是否需要prelink处理
      BUILD_STATIC_LIBRARY - 指明要编译成静态库
      BUILD_SHARED_LIBRARY - 指明要编译成动态库
    • 函数

    相关文章

      网友评论

          本文标题:首次解析Android.mk

          本文链接:https://www.haomeiwen.com/subject/vbdssttx.html