Android 动态替换桌面 Logo 实践记录(`activity-alias`)

背景

项目中需要支持"动态替换 App 桌面图标"(活动图标、节日图标等)。

本次主要实践的是 方案1:activity-alias ,并补充评估了 方案2:双启动入口


方案对比

方案1:activity-alias(本次落地)

参考:https://27house.cn/archives/1342

核心思路:

  • 保留真实启动 Activity
  • 通过多个 activity-alias 配置不同图标
  • 运行时通过 PackageManager#setComponentEnabledSetting 启停 alias,实现动态图标切换

方案2:两个启动入口

参考:https://github.com/windfone/DynamicIcon/blob/main/app/src/main/AndroidManifest.xml

特点:

  • 配置两个 launcher 入口
  • 冷启动后,出出现两个App进程

实践中遇到的问题与结论

1. 新图标由代码控制后,发版不要轻易删除 alias 列表(高风险)

参考:

现象

覆盖安装后,如果当前桌面展示的图标对应 alias 在新版本被删除,可能出现:

  • 点击桌面图标无法打开
  • 系统提示找不到入口
  • 直接崩溃

原因

系统 Launcher 可能仍保留旧组件引用;新版本删除 alias 后,该组件失效。

结论

  • 历史上线过的 alias 不要直接删除
  • 可"保留但禁用",不要"彻底移除"
  • alias 应按兼容协议管理(只增不减,谨慎清理)

2. 开发工具编译安装时报错:找不到启动页面

报错示例:

text 复制代码
Activity class {com.imaginer.xxx/com.imaginer.xxx.activity.welcome.ACT_SplashScreen} does not exist
相关推荐
松仔log1 小时前
Java中级——组合和继承
android·java·开发语言
我命由我123454 小时前
Jetpack Compose - MaterialExpressiveTheme 与 MaterialTheme、ColorScheme
android·java·开发语言·java-ee·kotlin·android jetpack·android runtime
lilian2335 小时前
Harmony os 技术实战|拼豆制图06:收藏 ID、生成记录与重启恢复怎么不打架
android·java·数据库·harmonyos
2601_955759625 小时前
ClaudeAPI成本中心与业务标签设计指南
android·java·数据库
余衫马5 小时前
2026最新版!Android Studio 极速安装与配置指南
android·ide·android studio
AFinalStone5 小时前
Android 7系统异常问题排查(五)Framework层(下)—System Server崩溃
android·tombstone·系统异常
AFinalStone5 小时前
Android 7系统异常问题排查(八)系统追踪—Trace机制与性能诊断
android·系统异常
极客猴子9 小时前
Android录音转写频繁卡顿?多款APP长时间会议场景稳定性实测
android·人工智能·智能手机·飞书
Kapaseker9 小时前
Boolean 变量到底该怎么命名?
android·kotlin
AFinalStone9 小时前
Android 7系统异常问题排查(六)应用异常(上)—ANR机制全解
android·系统异常