SystemUI实现逻辑及对比8.0
来源:互联网 发布:宜嘉情感分析 知乎 编辑:程序博客网 时间:2024/06/16 18:30
SystemUI实现逻辑
SystemUI中的关键类
- BaseStatusBar.java
- 在android 8.0中该类被去除.5.1中是一个抽象类.
- 它的Start()方法继承自SystemUI,该方法实现状态栏启动的具体步骤.
- BaseStatusBar.java
- SystemUI.java(抽象类)
- SystemUi被SystemUIService调用,SystemUiService继承service.
- 所以StatusBar也是一个Service.
- android 8.0中 SystemUI implements SystemUiServiceProvider
- SystemUI.java(抽象类)
- CommandQueue.Callbacks
- BaseStatusBar实现CommanQueue.callbacks接口.
- CommandQueue继承IStatusBar.Stub远程接口.
- 内部接口 Callbacks (call back on the main thread)
- IStatusBar.Stub接口的方法通过CommandQueue的Callbacks接口实现.
- 所以BaseStatusBar又是IStatusBar.Stub远程的实现类.
- CommandQueue.Callbacks
- 实现抽象类BaseStatusBar.java的两个子类.
- PhoneStatusBar.java
- android 8.0中替换类是 StatusBar.java
- TableStatusBar.java(已去除)
- 实现抽象类BaseStatusBar.java的两个子类.
- 实现SystemUI的类
- KeyguardViewMediator.java
- RingtongPlayer.java
- VolumeUI.java
- SystemBars.java
- PowerUI.java
- StorageNotification.java
- 实现SystemUI的类
SystemUI启动
- SystemUIService是在SystemServer.java中被启动.
mActivityManagerService.systemReady(new Runnable() { ~}
startSystemUI(context); - SystemUIService的onCreate()调用SystemUIApplication的方法启动
SystemUI相关组件, startServicesIfNeeded() , 启动各种Service,
但是它们不是真正的Service, 是继承SystemUI.java这个抽象类, 复写
start()方法.
UI组件启动
通过Handler发 mHandler.sendEmptyMessage消息, 分别调用
了 StartService() 和 continueStartService()两个方法.
然后, 通过回调 – > SystemBars的对象中;
– > 调到PhoneStatusBar的start()方法. 同时PhoneStatusBar在
start()方法里面调用父类BaseStatusBar的start();
NavigationBar 和 QuickSettiingPanel初始化后, 添加到UI中;SystemBars中关键代码:
createStatusBarFromConfig() {
...
mStatusBar = (BaseStatusBar) cls newInstance();
...
mStatusBar.start();
}
NavigationBar导航栏
PhoneStatusBar类 start()方法里面调用 addNavigationBar();
– > prepareNavigationBarView(); 最后
– > WindowManager 调用 addView将 NavigationBarView添加到UI界面;- -> Back Home Recent.
PhoneStatusBar类中 prepareNavigationBarView()
Android 8.0SystemUI视觉变化(arm版)
- 通知栏消息长按可以自定义去设置.
- 通知消息可以分组管理.
- 通知栏的功能项减少: 移动数据 勿扰 转屏 省电 飞行
- 快速设置settings
Android8.0的逻辑变化
- 目前只是看到: PhoneStatusBar.java 和 BaseStatusBar.java去除.
- 增加StatusBar.java 和 CollapsedStatusBarFragment.java
… 待续
阅读全文
0 0
- SystemUI实现逻辑及对比8.0
- SystemUI之控制中心实现
- SystemUI
- SystemUI
- autoreleasepool的数据结构及实现逻辑
- 逻辑回归详解及Python实现
- Android 购物车UI及逻辑实现
- 逻辑回归原理介绍及Matlab实现
- Android4.4 Systemui状态栏之信号逻辑流程分析
- 八大排序算法_C++实现及对比
- 各类排序算法的对比及实现
- 各类排序算法的对比及实现
- 分布式锁三种实现方式原理及对比
- SystemUI启动流程及主体布局介绍
- SystemUI启动流程及主体布局介绍
- SystemUI启动流程及主体布局介绍
- 税计算逻辑及SAP配置实现方法
- 逻辑回归的相关问题及java实现
- Java的深拷贝与浅拷贝
- javascript实现堆栈和简单的应用
- 计算机网络层次划分及协议了解
- 九、 通用工具 ----头文件cstddef,cstdlib和,cstring
- MonoBehaviour类
- SystemUI实现逻辑及对比8.0
- 浅析分布式系统背后的基础设施
- javaseday35补充(date对象 with语句 math对象 全局方法 自定义对象通过中括号获取值)
- 【C#学习】C#基础
- java面试题(剑指Offer):找出该链表的环的入口结点
- JS 倒计时插件
- fabirc1.0商业正式版本源码解析3——日志系统
- 最长上升子序列(LIS) 三种方法:O(nlogn,DP,LCS)
- window与Mac下安装ionic