Launcher3体系化之路

VX Blog:Android部落格

👋 欢迎来到Launcher 3

背景

车企对于桌面的排版布局好像没有手机那般复杂,但也有一定的需求。部分场景下,要考虑的上下文比手机要多一些,比如有如下的一些场景:

  1. 手车互联。HiCar,CarPlay,AndroidAuto,这三个应用,需要桌面对应做一些定制来应付认证,连接状态不同对应不同的图标状态;
  2. 音源切换。在手机端,不同音源类型只需要系统做统一处理即可,但车机端,一旦发声,则需要申请音频焦点,由系统做音频仲裁,然后再决定是否发声;
  3. 在2的前提下,车企智能座舱的桌面,底部一般有个音乐卡片,需要对接不同的音源,比如QQ音乐,网易云,蓝牙音乐,本地电台,USB音乐等,他们一播放,媒体卡片切换成对应的音源及相关内容,这一块较复杂。
  4. Widget的重视。智能座舱总想在这个点做出一些比较花哨的功能,比如常见的长按编辑卡片,出现卡片编辑库,添加库,两者之间可以让卡片互相拖动添加或删除。在此基础上还要有动画实现排挤卡片以及卡片列表显隐动画。
  5. 应用列表。这个功能点本来很简单,但座舱的产品经理总是拿手机做对比,比如手机的应用列表可以拖动换页,拖动排挤很自然还有动画,拖动时Widget与应用icon一起可以联动,分页滑动很丝滑等。
  6. 以上能力的持久化。

现实

车企一般将智能座舱应用软件相关的开发外包给供应商,当前也确实有专业的公司,将这一块做的非常好。

但这类公司没有产品定义权,不同汽车主机厂对于同一个应用的需求差异巨大,那么同一个应用就无法做成体系化来构建基础设施。

常见的场景是应用开发人员总是赶交付节点,总是在处理各种无法理清的依赖,总是对一些复杂的模块无法深入理解,总是吃力不讨好,总是应付屎山一般的代码,恶性循环下,跑路,去应付下一个屎山。

解决方案

Launcher是Android系统中比较复杂的模块,复杂在应用列表中有应用icon,Widget,快捷方式,文件夹,弹窗,动画效果,PMS,AMS等。因为主导过座舱Launcher架构设计,核心模块开发, 主机厂一般仅需要应用列表,多任务,Widget(卡片),壁纸这几个。

比较奇葩的是,壁纸一般在SystemUI中,但因为座舱外包给供应商,有可能存在Launcher和SystemUI不是同一家公司开发的情况,就存在壁纸的实现有可能集成在Launcher中。然而不仅仅是壁纸这一个功能,有可能应用列表还需要SystemUI来实现,别问怎么会有这样的事情,因为i have experienced 🙈。

这些问题的出现是大环境下车企压缩成本求生存求利润,掌控产品定义争取白嫖供应商,多处赛马择优录取,层层传递,到底层程序员,工时博弈与压缩,复杂功能模块迎来送往,总得有一个冤大头接下,于是怪诞之事变得平常。

总而言之,搞出一套方法论来应付总是可以。如果把Launcher3中应用列表,Widget列表,持久化分开作为不同的module,也就是将Workspace,CellLayout,DragLayer等复杂的类屏蔽,上层仅需要将他们排列组合即可应付这种复杂多变的交付需求。所以就有如下几个步骤去实现:

  • Launcher3模块化-应用列表
  • Launcher3模块化-Widget列表
  • Launcher3模块化-持久化

Launcher3架构

这里仅关心应用列表和弹窗,最近任务暂时列为todo.

所以弹窗和Widget,数据库持久化作为定制需求较大的功能,成为目标:

目标将在后续文章中逐步拆解并实现。

相关推荐
李新_5 小时前
我们使用了哪些Flutter 三方库(二)
android·flutter·ios
二流小码农6 小时前
鸿蒙开发:hvigorw,编译构建,实现命令打包
android·ios·harmonyos
龙之叶7 小时前
使用NMEA Tools生成GPS轨迹图
android
雨白8 小时前
ListView 使用详解:从入门、自定义到性能优化
android
百里东风8 小时前
STM32CubeDAC及DMA配置
android·stm32·嵌入式硬件
getapi8 小时前
flutter开发安卓APP适配不同尺寸的手机屏幕
android·flutter·智能手机
bytebeats8 小时前
移动开发中WebView使用的过去现在和未来
android·webview
恋猫de小郭8 小时前
腾讯 ovCompose 开源,Kuikly 鸿蒙和 Compose DSL 开源,腾讯的“双”鸿蒙方案发布
android·前端·flutter
Chenyu_3109 小时前
05.MySQL表的约束
android·开发语言·网络·数据库·网络协议·mysql·php
我的蒲公英9 小时前
2025年了,别再用微信群发APK了:内测分发的正确打开方式
android·安全·ios