挑来捡去,认为还是要选个承上启下的东西来下笔较为妥当,那SystemUI模块是最适合不过了。
本系列基于AOSP Android 8.0 源码讲述SystemUI模块功能,若有讲的不对的地方,你来打我呀!
00
本文结构
01
什么是SystemUI?
作为Android系统核心应用,SystemUI负责反馈系统及应用状态并与用户保持大量的交互。耳熟能详的三栏:StatusBar(状态栏)、NavigationBar(导航栏)与Notification Panel(通知栏),以及Recents(近期任务界面),使用起来方便又快捷。
另外Keyguard(锁屏界面)也是属于SystemUI的一部分。并且在Android8.0代码中,Keyguard模块已经从外部被合并到SystemUI源码目录下。
02
SystemUI路径
与/packages/apps/下许多模块不同的是,SystemUI属于Android frameworks的一部分。这也就意味着,SystemUI在正常情况下是不可被替换的(例如,短信应用可以被三方应用替换,Settings因所需权限过高而除外)。
SystemUI 源码目录:
/frameworks/base/packages/SystemUI/
SystemUI APK路径:
/system/priv-app/SystemUI/
03
SystemUI功能划分
在Android8.0上,我大致将SystemUI模块分为11个子模块,如下图所示。其中的StackDivider和PipUI是在Android 7.0新加入的模块。相信很多人都已经体验过Android 7.0之后的分屏功能。
1
2
3
4
5
6
关于SystemUI的介绍到这里就结束了,后续会根据模块进行更为深入的分析。