---
title: 控制台、悬浮窗与屏保
description: Android 宿主的页面结构、全局悬浮面板、防烧屏屏保、桌面小组件、保活策略与日志导出。
updated: 2026-10-20
---

# 控制台、悬浮窗与屏保

Android 宿主把「控制」和「显示」分开了：控制台负责配置，悬浮窗负责随手操作，屏保负责在不看屏幕时省电与防烧屏。

## <DocIcon name="map" /> 页面

![Android 设置页（深色）](/img/android-settings-dark.jpg)

<Figure caption="设置页：外观、下载源、权限、保活与屏保开关。截图来自 Android 仓库。" />

| 页面 | 内容 |
| --- | --- |
| 主页 | Runtime 状态、部署进度、启动/停止、远程绑定入口 |
| 挂机 | 虚拟屏画面、实例选择、任务开始/停止 |
| 控制台 | 内嵌 WebUI（与桌面版同一前端） |
| 日志 | 宿主 / Runtime / 特权服务三路日志 |
| 设置 | 外观、下载源、运行与安全、保活、屏保、关于 |

主页右上角的绑定按钮可以直接进入远程 AP 配对，不需要先部署本机 Runtime。

## <DocIcon name="monitor" /> 悬浮窗

基于 FloatingX 的全局浮窗，在任意应用或桌面之上可用：

| 操作 | 效果 |
| --- | --- |
| 单击 | 展开/收起面板 |
| 启动 / 停止 | 控制当前实例 |
| 队列 | 查看调度队列与当前任务 |
| 切换实例 | 在多实例间切换目标 |
| 日志 | 实时滚动最近的运行日志 |

悬浮窗是独立 Window，读不到 Activity 的 `Configuration` 或 `ViewModelStore`。它通过 `AppThemeState` 与 `OverlayController` 获取状态，所以主题切换后浮窗会跟着变，但不会共享页面的临时状态。

::: tip 悬浮窗不显示
检查「悬浮窗」权限是否授予。部分厂商 ROM 还有单独的「后台弹出界面」开关。
:::

## <DocIcon name="eye" /> 屏保（防烧屏）

后台挂机时屏幕长期点亮，OLED 设备有烧屏风险。屏保提供：

| 行为 | 参数 |
| --- | --- |
| 背景 | 黑色低亮度 |
| 进入方式 | 手动开启，或任务启动时自动进入 |
| 漂移 | 无操作 30 秒后，每 10 秒上下移动 16dp |
| 退出 | 向右拖动解锁条到末端并松手 |

漂移是周期性小幅位移，不会影响游戏画面（屏保覆盖在虚拟屏之上，游戏仍在后台运行）。LCD 设备同样可用，只是收益不如 OLED 明显。

## <DocIcon name="box" /> 桌面小组件

支持 Glance / RemoteViews 小组件，可显示运行状态并快速启停。

部分旧版厂商系统不能可靠解析 `?attr` 矢量着色与 `cornerRadius`，因此小组件使用显式 drawable 资源，不依赖主题属性。

## <DocIcon name="zap" /> 保活

后台挂机最大的敌人是系统省电策略。宿主提供三层：

1. **前台服务**：Runtime 或虚拟屏活跃时保进程，通知栏常驻。
2. **多路径保活**：`KeepAliveManager` 按设置启用多条路径，可重复启停，设置开关是最终裁决。
3. **电池优化白名单**：需要你手动授权。

建议同时设置：

- 系统设置 → 电池 → 应用 → AzurPilot → 不受限制。
- 厂商的「自启动」「后台运行」白名单。
- 关闭「省电模式」对后台的限制。

::: warning 保活不是万能的
部分 ROM 会在极端省电或内存压力下强杀进程。这时任务会中断，Runtime 需要重新启动。把日志导出后能看出是被系统杀死还是自身崩溃。
:::

## <DocIcon name="scroll" /> 日志

三路日志分开归档：

| 日志 | 位置 | 内容 |
| --- | --- | --- |
| 宿主日志 | 应用私有目录 | Compose、网关、部署、更新 |
| Runtime 日志 | `proot/session.log` + 上游 `log/` | 调度器与业务 |
| 特权启动链 | 独立时间线 | ADB 启动、Binder 回投、虚拟屏 |

特性：

- 异常时自动保存当前画面快照。
- 默认 7 天轮转，过期清理。
- 一键打包导出为 zip。

导出前确认压缩包里没有 `config/deploy.yaml`、`password.txt`、`remote-access.json`。这些文件在 Runtime 的 `config/` 下，导出日志时不会自动包含，但手动打包整个目录时会。

## <DocIcon name="settings" /> 设置项速查

| 分组 | 内容 |
| --- | --- |
| 外观 | Material / Miuix、明暗模式、动态取色 |
| 下载 | CNB / GitHub 直连 / 镜像 / 自定义前缀 |
| 运行与安全 | 内置 Shizuku、Root、外部服务、激活状态 |
| 保活 | 前台服务、电池优化引导 |
| 屏保 | 自动进入、亮度、漂移 |
| OCR | 加速后端、线程数、失败回退 |
| 关于 | 版本、提交、开源许可 |

## <DocIcon name="message" /> 常见问题

| 现象 | 原因 |
| --- | --- |
| 浮窗点击无反应 | 悬浮窗权限被回收，或省电策略限制后台 |
| 屏保不漂移 | 系统关闭了动画（开发者选项），或处于省电模式 |
| 小组件显示旧状态 | 启动器缓存，重新添加小组件 |
| 息屏后任务停止 | 电池优化未放行 |
| 日志导出为空 | 日志已轮转清理，或导出目录无权限 |
