Android源码学习------SystemUI(一)

本文详细介绍了Android SystemUI模块的构建过程,从Android.mk文件的作用开始,讲解了如何描述模块的源码、资源和编译选项。讨论了LOCAL_PATH、CLEAR_VARS、LOCAL_MODULE等关键宏的用途,以及如何处理.proto文件、资源编译、签名和安装位置等。通过理解这些内容,有助于开发者更好地理解和定制SystemUI。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SystemUI----mk文件

在学习某一个模块代码之前,首先需要查看该应用的mk文件,以便于有效的了解应用中source的相关信息。Android.mk文件用来告知NDK Build系统关于Source的信息。Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。
主要是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码、要链接的库等等。

SystemUI模块的代码位置:project/frameworks/base/packages/SystemUI/

#每个Android.mk文件必须以定义LOCAL_PATH为开始,它用于在开发tree中查找源文件
LOCAL_PATH:= $(call my-dir)  
include $(CLEAR_VARS)
#LOCAL_MODULE模块必须定义,以表示Android.mk中的每一个模块。名字必须唯一且不包含空格。
LOCAL_MODULE := SystemUI-proto  
LOCAL_SRC_FILES := $(call all-proto-files-under,src)  
LOCAL_PROTOC_OPTIMIZE_TYPE := nano
LOCAL_PROTO_JAVA_OUTPUT_PARAMS := optional_field_style=accessors
#收集自从上次调用 include $(CLEAR_VARS) 后的所有LOCAL_XXX信息,编译为编译为静态库
include $(BUILD_STATIC_JAVA_LIBRARY)  

include $(CLEAR_VARS)
LOCAL_MODULE := SystemUI-tags
LOCAL_SRC_FILES := src/com/android/systemui/EventLogTags.logtags
include $(BUILD_STATIC_JAVA_LIBRARY)

include $(CLEAR_VARS)
LOCAL_USE_AAPT2 := true
#optional指该模块在所有版本下都编译;user只在user版本下才编译;eng只在eng版本下才编译;tests只在tests版本下才编译
LOCAL_MODULE_TAGS := optional   
RELATIVE_FINGERPRINT_PATH := ../../core/java/android/hardware/fingerprint
LOCAL_SRC_FILES := \
    $(call all-java-files-under, src) \
    $(call all-Iaidl-files-under, src) \
    $(call all-Iaidl-files-under, $(RELATIVE_FINGERPRINT_PATH))
LOCAL_STATIC_ANDROID_LIBRARIES := \                
    SystemUIPluginLib \
    SystemUISharedLib \
    android-support-car \
    android-support-v4 \
    android-support-v7-recyclerview \
    android-support-v7-preference \
    android-support-v7-appcompat \
    android-support-v7-mediarouter \
    android-support-v7-palette \
    android-support-v14-preference \
    android-support-v17-leanback \
    android-slices-core \
    android-slices-view \
    android-slices-builders \
    android-arch-core-runtime \
    android-arch-lifecycle-extensions \
LOCAL_STATIC_JAVA_LIBRARIES := \
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值