SystemUI浅析

原创 2016年06月01日 11:40:35

最近刚弄玩SystemUI的更改,记录一下,android4.4:


1.SystemUI的启动流程:
SystemServer(Service) -> SystemUIService(Service) -> SystemBars(class).start() -> SystemBars(class).onNoService -> SystemBars(class).createStatusBarFromConfig() -> PhoneStatusBar(class).start() ->

PhoneStatusBar(class).createAndAddWindows() -> PhoneStatusBar(class).addStatusBarWindow() -> PhoneStatusBar(class).makeStatusBarView()<此处主要是SystemUI的LAYOUT初始化,也是主要操作的地方> ->

mWindowManager.addView(mStatusBarWindow, lp)<将要显示的布局,加载到窗口显示>

启动流程的主框架基本上就是这样的。更改的地方在makeStatusBarView();

2.SystemUI的图标更新流程:(Stsusbar的系统图标更新流程)

首先是图标的初始化:

CommandQueue(class)<此类是系统级服务要更新SystemUI时的binder,也就是说,当系统要更新图标时,就会调用CommandQueue的对应方法> -> BaseStatusBar.Callbacks() -> PhoneStatusBar.Callbacks()<addIcon(),updateIcon

(),removeIcon(),addNotification(),updateNotification()...>


PhoneStatusBarPolicy(class)<此类是实现初始化statusbar系统图标的类,如果要添加默认的图标需要在此处添加> -> StatusBarManager(class系统级的服务,统筹SystemUI的图标显示)

3.SystemUI的布局(status_bar.xml)

更改的地方:将原来的布局设置为隐藏,添加现在需要显示的布局。具体查看代码部分。

4.更改状态栏的高度,显示图标等。

将原来的:@*android:dimen/status_bar_height"替换为:@dimen/add_statusbar_hieght    //更改状态栏的高度 <全部替换>

在PhoneStatusBarView.makeStatusBarView()函数中:
将原来的:mIconSize = res.getDimensionPixelSize(com.android.internal.R.dimen.status_bar_icon_size); 替换为:mIconSize = res.getDimensionPixelSize(R.dimen.status_bar_icon_size);        //替换ICon尺寸

dimens文件中:
将<dimen name="status_bar_icon_size">@*android:dimen/status_bar_icon_size</dimen>
替换为:
<dimen name="status_bar_icon_size">26px</dimen>

5.添加USB,SD,AUX,DISC图标的显示和刷新。

代码在:PhoneStatusBarView类中添加。

Android 4.0 ICS SystemUI浅析——StatusBar结构分析

在上一篇文章《Android 4.0 ICS SystemUI浅析——SystemUI启动流程》中以及提到了SystemUI的组成,本文主要分析其中的StatusBar结构。       1.布...

Android7.0 SystemUI StatusBar和Notification代码浅析

SystemUI代码结构比Launcher2代码要复杂很多 下面的分析也主要是贴代码,备注给自己,以免以后忘记~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* 程序入口 * 系统会启动...

Android 7.0 SystemUI Recent浅析

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 最近Task模块 Recents extends SystemUI start进行初始化 ~~~~~~...

Android 4.0 ICS SystemUI浅析——SystemUI启动流程

阅读Android 4.0源码也有一段时间了,这次是针对SystemUI的一个学习过程。本文只是对SystemUI分析的一个开始——启动流程的分析,网上有很多关于2.3的SystemUI的分析,可4....
  • wcy9200
  • wcy9200
  • 2012年08月16日 15:31
  • 618

android SystemUI浅析之SystemUI启动流程

前言:最近在研究4.2的status bar 和navigation bar,想做一下总结,后来碰到一篇文章分享一下,至于4.2上的变化以及4.2上的总结,我会在后期补充上并且会一直修改和完善。参考h...

SystemUI.apk

  • 2013年02月14日 12:37
  • 1000KB
  • 下载

SystemUI学习笔记

  • 2015年09月15日 10:48
  • 1.74MB
  • 下载

如何修改状态栏Statusbar(SystemUI)图标和字体颜色

前言 由于公司项目的欢迎页是白色的,,修改状态栏颜色后,导致状态栏的白色字体完全被覆盖了,联想到之前在QQ、UC等一些app上都见到过状态栏的字体是深色的,想着,,必定有解决的方案。于是,有了本篇b...

systemui的clock修改

  • 2017年08月21日 10:02
  • 242B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SystemUI浅析
举报原因:
原因补充:

(最多只允许输入30个字)