[RK3288][Android6.0] SystemUI加载过程(状态栏和导航栏)
来源:互联网 发布:淘宝助理怎么使用5.5 编辑:程序博客网 时间:2024/05/19 02:05
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
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列表:
OS: Android 6.0
Kernel: 3.10.92
startSystemUi -> SystemServer.java
context.startServiceAsUser -> //ComponentName: com.android.systemuionCreate -> 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,//键盘相关};
参考:
SystemUI启动流程及主体布局介绍
阅读全文
1 0
- [RK3288][Android6.0] SystemUI加载过程(状态栏和导航栏)
- Android6.0SystemUI状态栏更新
- [RK3288][Android6.0] 调试笔记 --- 动态显示和隐藏导航栏(广播方式)
- SystemUI 7.0学习笔记二-状态栏和导航栏
- [RK3288][Android6.0] USB 枚举过程小结
- [RK3288][Android6.0] USB 枚举过程小结
- [RK3288][Android6.0] MediaCodec初始化过程小结
- android6.0如何删除桌面上的导航栏、状态栏、google搜索栏和系统搜索栏
- [RK3288][Android6.0] 调试笔记 --- 隐藏系统状态栏的方法
- [Android6.0][RK3399] 隐藏导航栏或状态栏
- Android 7.0 SystemUI 之启动和状态栏和导航栏简介
- Android 7.0 SystemUI 之启动和状态栏和导航栏简介
- [RK3288][Android6.0] 调试笔记 --- 移除导航栏(虚拟按键)
- [RK3288][Android6.0] 调试笔记 --- 禁止导航栏中的home key
- [RK3288][Android6.0] SoftMAC和FullMAC区别
- Android6.0 反编译systemUI
- [RK3288][Android6.0] WIFI接入过程的加密和认证方式小结
- [RK3288][Android6.0] WiFi的HAL层加载问题
- 用智能音箱+AI 联网玩狼人杀将是怎样的体验?
- 电脑重启后nagios报错Unable to get process status
- C++类与对象
- ue4 fatal error LNK1181 Engine\Binaries\Win64\UE4-UMGEditor.lib
- 移动端去除横向滚动条
- [RK3288][Android6.0] SystemUI加载过程(状态栏和导航栏)
- More is better (并查集)
- Java 8系列之重新认识HashMap
- Struts2的表单标签使用
- 使用StaggeredGridLayoutManager实现交错式网格布局
- 使用JavaMail进行邮件的发送
- svn 常用操作命令
- nagios报错 It appears as though you do not have permission to view information for any of the hosts yo
- JAVA-prim 最小生成树