夜雨聆风学习资料网

ARTICLE · 1293359

探究Aerial是如何实现智能电视任意APP开机自启

探究Aerial是如何实现智能电视任意APP开机自启
      家里的小米电视,主要用影视仓和酷9作为看CCTV等各频道的工具,每次开机后都要点一下才能运行起来,甚是不便,一直在探索如何实现APP开机自启,研究下来貌似只有root,但现在没有成熟的方案,直到最近Aerial的出现,带来了转机,开机后Aerial接管原桌面,然后Aerial可以设置任意APP开机自启,完美实现了我要的功能,在此也记录一下Aerial实现的原理。
两个核心守护服务:
HomeGuardService(无障碍桌面守护)
RevivalListener(通知监听复活服务)
具体实现步骤如下:

1、开机触发:BOOT_COMPLETED + 厂商自启动权限

电视开机完成,系统发送 BOOT_COMPLETED 广播,Aerial 接收器收到后拉起主程序与守护服务; TCL / 雷鸟等机型额外通过 ADB 授予 APP_AUTO_START 厂商自启动权限,绕过系统拦截。

很多国产电视不让第三方 App 直接设默认 Launcher,这一步经常被拦截,所以才需要无障碍兜底。

2、桌面守护(无障碍服务 HomeGuardService,最关键)

权限:无障碍 Accessibility(必须手动 / ADB 开启)
作用:持续监听前台 Activity 变化
服务标识:app.orchard.tv/app.orchard.tv.guard.HomeGuardService

3、被杀后复活:通知监听服务 RevivalListener(保活兜底)

国产电视待机 / 内存清理会直接杀掉 Aerial 进程,无障碍服务跟着断开; 安卓系统机制:通知监听服务一旦断开,系统会尝试重新绑定这个监听服务,绑定动作会唤醒 Aerial 进程,0.5 秒左右复活,重新拉起无障碍桌面守护,形成闭环保活36氪。
服务标识:app.orchard.tv/app.orchard.tv.guard.RevivalListener
开启命令:adb shell cmd notification allow_listener app.orchard.tv/app.orchard.tv.guard.RevivalListener

4、辅助权限(ADB 部署时批量授予)

部署脚本会一次性放开这些权限,支撑守护:
GET_USAGE_STATS
使用情况访问(识别前台应用)
SYSTEM_ALERT_WINDOW
悬浮窗 / 前台拉起
WRITE_SECURE_SETTINGS
写入安全设置(无障碍、通知监听配置)
自启动、关联启动白名单(厂商 appops)

5、两条路线对比

✅ 理想情况:系统允许设置 Aerial 为默认桌面 Launcher,不需要无障碍兜底,开机直接进 Aerial,最简单稳定。
✅ 绝大多数国产电视(小米 / TCL / 创维):不能改默认桌面,依赖【无障碍守护 + 通知监听复活】这套组合方案,也就是 Aerial 的 “桌面守护” 开关。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料