为 Android TV / 电视盒子设计的桌面启动器(Launcher),集成应用冻结、天气、每日 Bing 壁纸。本版为 Compose for TV 重写版。
HailLauncher 是一个为 Android TV / 电视盒子设计的桌面启动器,使用 Jetpack Compose for TV 构建。作为主屏幕,它负责展示应用卡片网格、时钟 / 网络状态、内存占用与天气等桌面信息,并通过设置页进行自定义。
与原版的关系:本版沿用同一
applicationId(com.github.HailLauncher),是原版(Leanback UI)的接替版本。两版不能共存——覆盖安装需同签名,否则必须先卸载原版。
与市面上只负责「把图标排整齐」的普通启动器不同,HailLauncher 的核心价值在于真正管理应用的生命周期——把暂时不用的应用冻结起来,让后台更干净、更省电、桌面更专注。这正是它区别于其它启动器的最大优势。
HailLauncher 可以直接冻结/解冻系统中的应用。
- 手动冻结:随时冻结不需要的应用;顶栏「一键冻结」可按名单批量冻结。
- 自动冻结:按触发时机自动冻结——回到桌面、屏幕熄灭、其它应用启动时,均可按设定延时停用许久不用的应用;新安装的应用也能自动加入冻结名单。
- 多种通道:自动选择可用的冻结通道(特权系统应用 → Shizuku → Root),也可手动指定某一种。
- 冻结角标:冻结的应用在卡片上显示雪花角标(真冻上 = 蓝色底,仅在名单内 = 灰色底)与标题前「❄」,一眼区分、避免误点;角标位置可设(四角 / 不显示)。
- 解冻即用:冻结只是停用进程、释放后台占用,应用数据与设置全部保留,一键解冻即可正常使用;单击冻结的应用会先自动解冻再启动。
- 随时关闭:不需要时可整体停用冻结,并一键解冻全部应用回到原始状态。
冻结的意义:停用的应用不再常驻内存,也不后台自启耗电,避免被遗忘的应用堆积成「僵尸后台」,解决设备装应用越多越卡的问题。
HailLauncher 是特权系统应用,部署到 /system/priv-app/(而非普通应用),冻结等能力才完全解锁;否则冻结通道自动回退 Shizuku / Root。
- APK 路径:
/system/priv-app/HailLauncher/HailLauncher.apk。 - 权限授予:需配套
/system/etc/permissions/privapp-permissions-HailLauncher.xml,原文如下:
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.github.HailLauncher">
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
<permission name="android.permission.FORCE_STOP_PACKAGES"/>
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
<permission name="android.permission.MANAGE_APP_OPS_MODES"/>
<permission name="android.permission.BIND_APPWIDGET"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
</permissions>缺失任一权限,对应功能会降级或不可用(如冻结通道回退,或无法写系统安全设置)。
- 应用卡片网格:单一网格,卡片为 16:9 横幅(应用图标 + 可选名称 + 冻结角标)。单击启动;
MENU键打开应用菜单(应用设置 / 卸载 / 隐藏 / 加入冻结名单);长按进入编辑模式,选中后方向键实时换位重排。排序方式为「固定」(手动顺序)或「最近打开」。 - 顶栏:左侧时钟 + 日期(点击进入系统日期时间设置),右侧药丸按钮组——内存占用 / 一键冻结(同址切换,带占用占比条)、网络、系统设置、桌面设置。
- 天气面板:小米天气数据源,支持单日 / 多区(左中右三城)/ 七日预报,含 AQI 与预警,可显示到省 / 市 / 区。
- 壁纸背景:每日 Bing 壁纸(自动更换 / 固定当前)或本地图片,设置页操作后壁纸即时透出。
七个分类:
| 分类 | 内容 |
|---|---|
| 状态栏 | 时钟格式(仅时间 / 星期·时间 / 日期·时间 / 日期·星期·时间)、24 小时制(未设置则跟随系统) |
| 应用展示管理 | 显示应用名、每行列数(自适应 / 4–8)、排序方式(固定 / 最近打开) |
| 天气 | 天气显示(禁用 / 单日 / 多区 / 七日)、设置城市(多区为左 / 中 / 右三个槽位,可单独清除) |
| 壁纸 | Bing 每日壁纸开关、更换方式(自动更换 / 固定当前)、挑选在线图片、选择本地壁纸、重置壁纸 |
| 应用管理 | 显示系统应用开关 + 应用列表(隐藏 / 加入冻结名单 / 打开应用设置 / 卸载) |
| 冻结 | 冻结方式、冻结图标位置、自动冻结新装应用、返回主页 / 熄屏 / 启动新应用后冻结(各带延时)、解冻所有并停用 |
| 关于 | 版本、启动时检查更新、手动检查更新 |
- 每日 Bing 壁纸:基于
niumoo/bing-wallpaper索引数据;构建时下载该索引并打进 APK,作为离线时「挑选在线图片」页的内置数据。 - 天气:小米天气接口。
- 行政区划:内置
pca-code.json(省 / 市 / 区县)。
中英双语:values/(英文,基准语言)+ values-zh-rCN/(中文)。其余 locale 回退英文。
- LeanbackLauncher —— 原版架构参考。
- Hail —— 冻结引擎(git 子模块,pinned
v1.11.0)。 - niumoo/bing-wallpaper —— Bing 每日壁纸数据。
- 小米天气数据(仅供学习用途)。