コンソール・フローティング・スクリーンセーバー
Android ホストは「詳細設定」と「日常のクイック操作」を明確に分離しています:コンソール画面で完全な設定を行い、フローティングパネルで手軽に開始・停止を操作し、周回中はスクリーンセーバーにより画面焼き付きとバッテリー消費を防止します。
画面構成

| 画面タブ | 主な機能 |
|---|---|
| ホーム | Runtime の状態、デプロイ進捗、起動/停止、リモート接続エントリ |
| 周回 | 仮想ディスプレイのリアルタイム描画、インスタンス選択、タスク開始/停止 |
| コンソール | 内蔵 WebUI(デスクトップ版と同一のフロントエンド画面) |
| ログ | ホスト / Runtime / 特権サービスの3系統ログ閲覧とエクスポート |
| 設定 | 外観スタイル、ダウンロード元、権限管理、常駐保活、スクリーンセーバー、端末情報 |
ホーム画面右上の接続アイコンから、ローカルの Runtime をデプロイすることなく直接リモートインスタンスへのペアリング画面へ進むことも可能です。
フローティング操作パネル
FloatingX をベースとしたグローバルオーバーレイパネルであり、他のアプリやホーム画面の上に重ねて表示できます:
| 操作 | 動作 |
|---|---|
| タップ | パネルの展開 / 折りたたみ |
| 開始 / 停止 | 選択中のインスタンスの実行を即時切り替え |
| キュー確認 | 現在のタスクとスケジューラーのキュー一覧を表示 |
| インスタンス切替 | 複数インスタンス環境で操作対象を素早く変更 |
| ログストリーム | 直近の実行ログをリアルタイムにスクロール表示 |
フローティングウィンドウは独立したシステム Window であり、Activity のライフサイクルとは分離されています。AppThemeState と OverlayController を通じて状態を取得するため、アプリ側のテーマ変更には追従しますが、画面固有の一時的な状態は共有しません。
フローティングパネルが表示されない場合
端末の設定で「他のアプリの上に重ねて表示(オーバーレイ権限)」が付与されているか確認してください。一部のメーカー製 ROM では「バックグラウンドでのポップアップ表示」などの追加権限が必要です。
スクリーンセーバー(有機EL焼き付き防止)
バックグラウンド周回中は画面が長時間点灯し続けるため、OLED(有機EL)ディスプレイでは画面の焼き付きリスクが存在します。本機能は以下の保護を提供します:
| 挙動 | パラメータ |
|---|---|
| 背景表示 | 真っ黒(純黒表示による発光オフ)および超低輝度 |
| 起動条件 | 手動による切り替え、またはタスク開始時の自動突入 |
| ピクセルシフト | 無操作状態が30秒継続した後、10秒ごとに上下に 16dp 微小ドリフト移動 |
| 解除操作 | 画面下部のアンロックバーを右端までスライドして指を離す |
ドリフト移動は定期的な微小シフトであり、ゲーム自体の動作には影響しません(スクリーンセーバーは仮想ディスプレイの上に描画され、ゲームは内部で動作を継続します)。LCD 端末でも省電力効果が得られます。
ホーム画面ウィジェット
Glance / RemoteViews ベースのホーム画面ウィジェットに対応しており、周回状態の確認やクイックな開始・停止が可能です。
一部の旧型端末 ROM におけるベクター属性の解決バグを回避するため、ウィジェットはテーマ動的属性に依存せず、明示的な静的 drawable リソースで描画されます。
バックグラウンド常駐保活
Android 実機で周回を行う際の最大の障害は、OS 独自の省電力タスクキラーです。本アプリは3重の保護を提供します:
- フォアグラウンドサービス:Runtime または仮想画面がアクティブな間、通知領域に常駐してプロセス優先度を維持。
- 多経路保活マネージャー:
KeepAliveManagerが設定に基づき複数の保活パスを統合制御。 - バッテリー最適化の除外:システム設定からユーザーによる明示的な除外認可が必要。
推奨設定チェックリスト:
- システム設定 → バッテリー → アプリバッテリー使用量 → AzurPilot を「制限なし」に設定。
- メーカー固有の「自動起動」「バックグラウンド実行」ホワイトリストに登録。
- 「省電力モード」「バッテリーセーバー」によるバックグラウンド制限を解除。
保活機能の限界について
極端なメモリ不足や超省電力モード下では、OS により強制終了される可能性があります。重要な周回を行う際は、定期的に端末の状況を確認するか、PC 環境での実行を検討してください。
ログの管理と出力
3系統のログが分離して記録されます:
| ログ種別 | 格納場所 | 記録内容 |
|---|---|---|
| ホストログ | アプリのプライベートストレージ | Compose UI、ゲートウェイ通信、デプロイ、更新ログ |
| Runtime ログ | proot/session.log + コアの log/ | スケジューラーとゲーム操作ログ |
| 特権起動ログ | 独立したタイムライン記録 | ADB 起動、Binder コールバック、仮想画面管理 |
ログ機能の特徴:
- 異常検知時に現在の画面スクリーンショットを自動保存。
- デフォルトで7日間の自動ローテーション(古いログは自動削除)。
- ワンタップで ZIP 形式にアーカイブしてエクスポート可能。
エクスポート前に、アーカイブ内に config/deploy.yaml、password.txt、remote-access.json などの機密ファイルが含まれていないことを確認してください。
設定項目一覧
| グループ | 設定内容 |
|---|---|
| 外観 | Material / Miuix スタイル切り替え、ダークモード、ダイナミックカラー |
| ダウンロード | CNB / GitHub 直連 / 内蔵ミラー / カスタムプレフィックス |
| 実行とセキュリティ | 内蔵 Shizuku、Root、外部サービス、アクティベーション状態確認 |
| 常駐保活 | フォアグラウンドサービス設定、バッテリー最適化の案内 |
| スクリーンセーバー | 自動突入、輝度設定、ピクセルシフトの有効化 |
| OCR | 高速化バックエンド(LiteRT/MNN)、スレッド数、CPU フォールバック |
| アプリ情報 | バージョン、コミットハッシュ、オープンソースライセンス表示 |
よくある質問
| 現象 | 主な原因と対策 |
|---|---|
| フローティングパネルをタップしても反応しない | オーバーレイ権限の失効、または省電力機能によるバックグラウンド制限 |
| スクリーンセーバーがピクセルシフトしない | 開発者オプションでアニメーションが無効化されている、または省電力モード中 |
| ウィジェットに古い状態が表示されたまま | ランチャーキャッシュの影響。ウィジェットを一度削除して再配置 |
| 画面消灯後にタスクが中断する | バッテリー最適化が「制限なし」に設定されていない |
| ログエクスポートの結果が空 | ログがすでにローテーション削除されたか、保存先への書き込み権限不足 |