URL-TEXT
/project/car_systemui
Start Date
Aug 1, 2023
End Date
Dec 1, 2023
SubTtile
独立负责
车机系统 SystemUI 整体重构 (独立负责)2023.08 ~ 2023.12
演示视频
Situation|Task(项目背景)
业务上来说:
定制开发的一个 SystemUI APP ,并能够在不同型号的车机(底层实现不同)上使用,包含:
- 顶部的 StatusBar(系统状态栏)
- 底部 NavigationBar(底部导航栏,Dock栏)

- 下拉负一屏幕快捷控制面板 QsPanel

- App 展示面板 AppPanel

- 空调快捷控制面板 HvacPanel

从技术上来说:
一个基于 WindowManager 和 自定义 View 实现的 App (和修改 AOSP 中的 SystemUI 源码来定制不同)
Action
- 基于
自定义 View
的布局
,绘制
,和触摸事件
,实现所有的面板; - 带渐变和动画的滑动条;
- 带动画可以上下滑动的抽屉布局;
- 基于网络状态自定义绘制的信号展示 View;
- 基于
代理模式
和单例模式
, 封装业务层需要的接口,不同的车机型号根据自己的底层支持做具体的实现;
- 基于
Media3
和Lottie
,Animation
,MotionLayout
等实现相关的动画效果;
- 基于
Gradle
的多渠道
打包,实现多个车型的代码统一管理,一键打包多个型号的 APK;
- 基于
Kotlin Data Class
,替换原本的 XML 配置。使得扩展性大大提高;
Result(结果)
- 大大提高了代码的可维护性,扩展性,测试起来也更加方便;
- 优化后的 APK 体积减少 30% ,内存占用减少 20%;
- 动画和相关交互效果优化后,使用体检大大提升;