phonestatusbar.java_[RK3288][Android6.0] SystemUI加载过程(状态栏和导航栏)

Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

startSystemUi -> SystemServer.java

context.startServiceAsUser ->  //ComponentName: com.android.systemui

onCreate -> SystemUIService.java

getApplication().startServicesIfNeeded -> //SystemUIApplication

SystemUIApplication -> SystemUIApplication.java

mServices[i].start() -> //SERVICES数组定义了运行的子服务列表,将会被依次启动

start -> SystemBars.java//这里只关注statusbar

new ServiceMonitor //mCallbacks是systemBars类,下面要用到

mServiceMonitor.start

mHandler.sendEmptyMessage -> ServiceMonitor.java //MSG_START_SERVICE

handleMessage ->

startService ->

mCallbacks.onNoService ->

onNoService -> SystemBars.java

createStatusBarFromConfig ->

mContext.getString //从xml获取类名: R.string.config_statusBarComponent

//在文件frameworks/base/packages/SystemUI/res/values/config.xml中

//为com.android.systemui.statusbar.phone.PhoneStatusBar

mContext.getClassLoader().loadClass //加载类

mStatusBar.start ->

start -> PhoneStatusBar.java

super.start //调用父类即BaseStatusBar

start -> BaseStatusBar.java

ServiceManager.getService(Context.STATUS_BAR_SERVICE))  //获取到对应的是StatusBarManagerService

mBarService.registerStatusBar //将自己注册到SystemBarService中,SystemBarService的处理都交由它实现

createAndAddWindows ->  PhoneStatusBar.java //创建状态栏和导航栏窗口

addStatusBarWindow ->

makeStatusBarView //构造view

new StatusBarWindowManager

mStatusBarWindowManager.add //添加状态栏的view到窗口中

addNavigationBar //添加导航栏view到窗口中

new PhoneStatusBarPolicy //定义系统通知图标的设置策略

SERVICES列表:

private final Class>[] SERVICES = new Class[] {

com.android.systemui.tuner.TunerService.class, //定制状态栏服务

com.android.systemui.keyguard.KeyguardViewMediator.class,//锁屏模块

com.android.systemui.recents.Recents.class,//最近应用

com.android.systemui.volume.VolumeUI.class,//全局音量控制

com.android.systemui.statusbar.SystemBars.class,//系统状态栏

com.android.systemui.usb.StorageNotification.class,//Storage存储通知

com.android.systemui.power.PowerUI.class,//电量管理相关

com.android.systemui.media.RingtonePlayer.class,//铃声播放

com.android.systemui.keyboard.KeyboardUI.class,//键盘相关

};

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值