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
相关推荐
私人珍藏库2 小时前
[Android] 会计快题库 -财会职称考试刷题学习
android·人工智能·学习·app·软件·多功能
安卓修改大师8 小时前
安卓修改大师 vs MT管理器:反编译工具终极对决与全景解析
android·人工智能·机器翻译
程序员小八7779 小时前
从 0 学习 MySQL 索引——7 大核心精讲
android·学习·mysql
雅客李10 小时前
2026云手机低价机型实测 安卓云手机踩坑测评报告
android·智能手机
蓝速科技10 小时前
蓝速科技鸿蒙广告机替代安卓实测:信创系统下的性能与边界评估
android·科技·harmonyos
雅客李10 小时前
2026云手机高负载压力测评 安卓云手机多开实测数据
android·智能手机·php
千里马学框架12 小时前
google官方Perfetto 中使用 AI相关skill
android·人工智能·ai·framework·perfetto·性能·skill
zhangphil14 小时前
Android RecyclerView图像类ViewHolder离屏缓存数量直接增加Java/View对象内存,间接增加Graphics/GL内存
android
众少成多积小致巨14 小时前
Android C++ 编码规范指南
android·c++·google
雅客李15 小时前
2026云手机旗舰机型评测 安卓云手机游戏帧率实测
android·智能手机