Android开发工作经历整理
一 车载软件方向
车载空调app开发
1功能介绍
车载空调屏幕系统通过 触控屏+智能交互 方式,提高驾驶员和乘客的操作便捷性,同时与整车系统深度集成,实现更智能的控温体验。
1.1空调页面
包含以下功能:
- 背景高斯模糊处理
- 前排空调控件:前排空调开关,自动,AC,急速制冷,内外循环,前挡风除霜,后挡风加热,对窗吹,对人吹,避人吹,同步,出风模式(对人吹,避人吹,自由风),风扇挡位
- 后排空调控件:后排空调开关,自动,对人吹,避人吹,文档调节,风量挡位调节
- 出风模式实现
- 按钮点击热区
- 页面下滑回弹
- 8s无操作页面隐藏
- 空调,座椅,香氛模块点击切换以及滑动切换


1.2座椅页面
包含以下功能:
- 座椅通风,加热,按摩模块切换
- 通风,加热,按钮强度,按摩区域切换
- 按摩区域动态显示与隐藏展示
- ui显示回弹



1.3香氛页面
包含以下功能:
- 实现以下功能:
- 香氛香型切换
- 香氛浓度切换
- 每个香型剩余量展示
- 背景图展示



2 使用的技术
2.1 编程语言与版本
- Kotlin:项目主要开发语言,利用其空安全、协程、扩展函数等特性提高开发效率
- Android SDK:针对车载Android系统开发
2.2 构建工具
- Gradle:使用Kotlin DSL (build.gradle.kts) 管理项目依赖和构建配置
- Android Gradle Plugin:支持Android特有的构建功能
2.3 MVVM架构
- Model-View-ViewModel:采用Google推荐的MVVM架构模式
- 关注点分离:UI逻辑与业务逻辑分离,提高代码可维护性
2.4 分层架构
- UI层:Fragment/Activity负责界面展示和用户交互
- ViewModel层:处理业务逻辑,管理UI状态
- Repository层:管理数据来源,提供统一的数据访问接口
- Manager层:处理与底层系统的交互
2.5 Flow API
- Kotlin Flow:主要的响应式数据流处理方案
- StateFlow:用于管理UI状态的热流实现
- Flow操作符:使用distinctUntilChanged、combine、flatMapLatest等操作符优化数据流
2.6 Jetpack组件
- ViewModel:管理UI相关数据,在配置变更时保持数据一致性
- DataBinding:实现数据与UI的双向绑定,减少样板代码
2.7 Kotlin协程
- CoroutineScope:结构化并发管理
- Dispatchers:多线程调度(Main、IO等)
- Suspend函数:非阻塞式异步编程
2.8 自定义并发工具
- LastClickDebounceManager:防抖处理,优化用户快速连续操作
- HandlerThread:后台线程处理,避免阻塞主线程
2.9 UI组件
- AndroidX:使用最新的AndroidX库组件
- ViewBinding/DataBinding:类型安全的视图绑定
2.10 图片加载与缓存
- Glide:高效的图片加载库
- LruCache:自定义的内存缓存实现(ImageCache类)
2.11 布局技术
- XML布局:使用传统XML定义UI布局
- 使用ViewStub:根据项目文档显示有ViewStub使用调研
2.12 CarService API
- android.car库:与车载系统交互的官方API
- CarPropertyManager:访问和控制汽车属性
2.13 CAN信号通信
- DDSCanBridge:CAN信号桥接库,用于与汽车CAN总线通信
- 自定义信号封装:针对不同功能模块(空调、座椅、香氛等)的信号封装
2.14 日志系统
- Logger:自定义日志工具类
- Timber:可选的日志库(项目文档中有提及)
2.15 错误处理
- GlobalTryCatch:全局异常捕获和日志记录工具
- SafeExecute:安全执行机制,防止异常导致应用崩溃
2.16 缓存与存储
- SharedPreferences:通过PrefsManager进行管理
- 内存缓存:针对不同类型数据的专用缓存实现
2.17 数据优化
- 防抖机制:防止频繁操作导致性能问题
- 信号缓存:减少重复查询和处理
2.18 UI优化
- 延迟加载:按需加载UI组件和资源
- 批量更新:优化UI刷新,减少绘制次数
2.19 核心库
- android.car.jar:Android车载API
- DDSCanBridge-v3.10.aar:CAN总线通信库
- viewcover-release.aar:视图覆盖相关的UI库
2.20 支持库
- AndroidX:Android支持库
- Kotlin Coroutines:协程库
2.21 设计模式
- 单例模式:大量使用object声明实现单例(如各种Manager类)
- 观察者模式:实现状态监听和通知机制
2.22 编码规范
- Kotlin编码规范:使用Kotlin的现代语法特性
- 文档化:通过README文件记录设计决策和实现细节
