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栏)
    • notion image
  • 下拉负一屏幕快捷控制面板 QsPanel
    • notion image
  • App 展示面板 AppPanel
    • notion image
  • 空调快捷控制面板 HvacPanel
    • notion image
从技术上来说:
一个基于 WindowManager 和 自定义 View 实现的 App (和修改 AOSP 中的 SystemUI 源码来定制不同)

Action

  • 基于自定义 View布局绘制,和触摸事件,实现所有的面板;
    • 带渐变和动画的滑动条;
    • 带动画可以上下滑动的抽屉布局;
    • 基于网络状态自定义绘制的信号展示 View;
  • 基于代理模式单例模式, 封装业务层需要的接口,不同的车机型号根据自己的底层支持做具体的实现;
  • 基于 Media3LottieAnimationMotionLayout 等实现相关的动画效果;
  • 基于 Gradle多渠道打包,实现多个车型的代码统一管理,一键打包多个型号的 APK;
  • 基于 Kotlin Data Class,替换原本的 XML 配置。使得扩展性大大提高;

Result(结果)

  • 大大提高了代码的可维护性,扩展性,测试起来也更加方便;
  • 优化后的 APK 体积减少 30% ,内存占用减少 20%;
  • 动画和相关交互效果优化后,使用体检大大提升;
Loading...
shuouyang
shuouyang
android开发 ReactNative开发 小程序开发
最新发布
AOSP 环境搭建
2025-3-29
View 绘制流程-源码解析
2025-3-12
HTTP
2025-3-4
JVM 虚拟机
2025-2-28
蓝牙-BLE-基础
2025-2-28
从 OkHttp 的原理来看 HTTP
2025-2-19
公告
🎉热点信息🎉
--- 1 ---
Jet Brains 推出新的跨平台支持 Kotlin MultiPlatform
--- 2 ---
新的小巧便捷的依赖注入框架 Koin
--- 3 ---
新一代 API 查询语言 GraphQL