提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Android13_SystemUI下拉框新增音量控制条
一、必备知识
- 在Android12 版本上面已经完成了功能的实现,目前是在Android13
版本实现此功能,可以参考上一篇文章相关的必备基础知识和实现方式Android12实现SystemUI下拉框新增音量控制条 - 在Android12 基础上对比实现方式,来实现Android13 版本上面的功能
二、源码分析对比
源码对比Android12,
- 音量条功能实现本身是参考下拉框已知的brightness 模块开发,所以需要对brightness模块熟悉;
- SystemUI下拉QS、QQS这些组件包括其它组件是怎么添加到系统里面去,怎么展示的,这个逻辑很重要,也需要和Android12 对比下
1.brightness模块分析对比
Android12源码地址:http://xrefandroid.com/android-12.0.0_r34/xref/frameworks/base/packages/SystemUI/src/com/android/systemui/settings/brightness/
Android13源码地址:http://xrefandroid.com/android-13.0.0_r83/xref/frameworks/base/packages/SystemUI/src/com/android/systemui/settings/brightness/
每个类的定义和作用已经在Android12 中分析过,这里最大的一个类改名了,改的很有意义:
BrightnessSlider.java -> BrightnessSliderController.java ,控制类就是控制类,见名知义!
2.statusbar/phone 对应模块对比
Android13 中 CentralSurfacesImpl 类 替代了StatusBar 类。
对比初始化类声明
如下:一个用继承实现基本功能,一个用接口实现功能
StatusBar.java
public class StatusBar extends SystemUI implements DemoMode,
ActivityStarter, KeyguardStateController.Callback,
OnHeadsUpChangedListener, CommandQueue.Callbacks,
ColorExtractor.OnColorsChangedListener, ConfigurationListener,
StatusBarStateController.StateListener,
LifecycleOwner, BatteryController.BatteryStateChangeCallback,
ActivityLaunchAnimator.Callback {
public static final