简介
SystemUI属于android系统级的apk,位置在frameworks\base\packages\SystemUI,主要功能有:
1)状态栏信息显示,比如电池,wifi信号,3G/4G等icon显示
2)通知面板,比如系统消息,第三方应用消息,都是在通知面板显示。
3)近期任务栏显示面板,比如长按主页或近期任务快捷键,可以显示近期使用的应用。
4)提供截图服务,比如电源+音量加可以截图。
5)提供壁纸服务,比如壁纸的显示。
6)提供屏保服务。
7)系统UI显示,比如系统事件到来时,显示系统UI提示用户。
代码结构
首先看一下SystemUI的代码结构,如下图:
一个一个文件介绍,首先docs里面是用markdown编写的一个说明文档demo_mode.md,有兴趣的同学可以打开看一下(全英文),res、src和tests文件不多说了,Android.mk文件里的内容,下面会重点讲解。
Android.mk详解
首先先放一段android.mk的代码
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SystemUI-proto-tags
LOCAL_SRC_FILES := $(call all-proto-files-under,src) \
src/com/android/systemui/EventLogTags.logtags
LOCAL_PROTOC_OPTIMIZE_TYPE := nano
LOCAL_PROTO_JAVA_OUTPUT_PARAMS := optional_field_style=accessors
include $(BUILD_STATIC_JAVA_LIBRARY)