このページでは、デスクトップ ウィンドウに関連する機能とテスト シナリオについて詳しく説明します。
デスクトップ機能
このセクションでは、デスクトップ ウィンドウに関連する主な機能と構成について説明します。
タスクの上限を有効にする
デスクトップ ウィンドウでサポートされるタスクの最大数を構成するには:
- デスクトップ ウィンドウを有効にします。
config.xmlの構成オーバーレイ フラグconfig_maxDesktopWindowingActiveTasksを、サポートされるタスクの最大数に設定します。無制限の数のタスクをサポートするには、フラグをデフォルト値の0に設定します。<integer name="config_maxDesktopWindowingActiveTasks">4</integer>
ブラウザ固有の機能
Android 16 では、カスタマイズ可能なヘッダー インセットとアプリ インスタンス管理という 2 つのブラウザ固有の機能が導入されました。このセクションでは、ブラウザの互換性を検証するためのテスト シナリオについて説明します。OEM は、機能の実装が意図したとおりに動作することを確認する必要があります。
カスタマイズ可能なヘッダー インセットのテストケース
次のテストケースでは、カスタマイズ可能なヘッダー インセットとのブラウザの互換性を検証します。
- UI のインタラクティビティ: ブラウザのキャプション バーの UI が、すべてのウィンドウ構成(フリーフォーム、分割画面、全画面表示)で完全にインタラクティブであることを確認します。
- システム アイコンのクリアランス: ブラウザの UI がシステム アイコンの下に描画されないことを確認します。
- 前景色の適用: ブラウザのテーマに基づいて、アプリのヘッダーのシステム アイコンに正しい前景色が適用されていることを確認します。 これは、ブラウザのテーマがシステムのテーマと異なる場合に特に重要です。
- ウィンドウのドラッグ: タブバーの空の領域を長押しして、フリーフォーム ウィンドウをドラッグできることを確認します。
- サイズ変更時のタブの表示 / 非表示: 最適な使いやすさを維持するために、ウィンドウの幅に基づいてタブが表示または非表示になることをテストします。
ドラッグ可能なジェスチャー動作によるアプリ インスタンス管理のテストケース
次のテストケースでは、アプリ インスタンス管理とのブラウザの互換性を検証します。
- 新しいウィンドウの作成: タブバーから空の領域にタブをドラッグすると、そのタブを含む新しいブラウザ ウィンドウが作成されることを確認します。
- 最後のタブの新しいウィンドウ(単一インスタンス)がない: ブラウザ インスタンスが 1 つだけ開いている場合、そのウィンドウの最後のタブをドラッグしても新しいウィンドウが作成されないことを確認します。
デスクトップ優先モードとタッチ優先モード
デスクトップ ウィンドウは、スタンドアロン タブレットだけでなく、クラムシェルや外部ディスプレイが接続されたデバイスなど、さまざまなフォーム ファクタをサポートするように設計されています。フォーム ファクタが異なると、ユーザーが期待する操作も異なります。これは、多くの場合、主な入力方法(タッチ、キーボード、マウス)によって決まります。そのため、デスクトップ ウィンドウでは、次の 2 つの異なる動作モードが採用されています。
- デスクトップ優先モード: キーボードとタッチパッドに最適化されたエクスペリエンスを提供します。このモードでは、フリーフォーム ウィンドウが優先されます。このモードは、ノートパソコンのような構成を想定しています。
- タッチ優先モード: タッチに最適化されたエクスペリエンスを提供します。このモードでは、全画面表示ウィンドウが優先されます。このモードは、スタンドアロン タブレットのデフォルトです。
これらのモードは、個別のデスクトップ環境ではなく、デフォルトの UI 動作を決定するディスプレイごとの状態です。
動作の違い
次の表に、デスクトップ優先モードとタッチ優先モードの UI と機能の主な違いをまとめます。
| 機能 | タッチ優先モード | デスクトップ優先モード |
|---|---|---|
| デフォルトの起動 | フリーフォーム ウィンドウがすでに最前面にない限り、ウィンドウは全画面表示で起動します。 | 全画面表示ウィンドウがすでに最前面にない限り、ウィンドウはフリーフォームで起動します。 |
| タスクバーのタイプ | 全画面表示では一時的なタスクバー (固定されたアプリのみを表示)を使用します。 | 常にデスクトップ タスクバー (固定されたアプリと開いているアプリを表示)を使用します。 |
| 再フォーカス | ウィンドウは、現在のディスプレイ モードに基づいて再アクティブ化されます(たとえば、ディスプレイがデスクトップ ウィンドウの場合、フリーフォームで再アクティブ化されます)。 | ウィンドウは、保存されているウィンドウ モードに基づいて再アクティブ化されます(たとえば、全画面表示ウィンドウは常に全画面表示で再開されます)。 |
| ドラッグして最前面に表示 | ウィンドウを上端にドラッグすると、全画面表示 になります。 | ウィンドウを上端にドラッグすると、最大化 状態になります。 |
| ウィンドウ コントロール | 全画面表示コントロールにアプリハンドルを使用します。 | 全画面表示コントロールにホバーメニューを使用します。 |
デスクトップ優先モードはディスプレイごとの状態です。つまり、デバイスはタッチ優先の内部ディスプレイとデスクトップ優先の外部ディスプレイを同時にホストできます。
切り替えトリガー
ディスプレイの適切なモードを決定するために、いくつかの要素が評価されます。
- 入力周辺機器: キーボードとタッチパッドまたはマウスの両方が接続されて有効になっている場合、ディスプレイはデスクトップ優先に切り替わります。
- 外部ディスプレイ: 接続された外部ディスプレイは、通常、内部ディスプレイをミラーリングしていない限り、デフォルトでデスクトップ優先モードになります。
- デバイスの姿勢: コンバーチブル デバイスの場合、物理的な向きに基づいてモードを切り替えることができます(たとえば、キーボードを裏返すとタッチ優先に切り替わります)。
技術実装
この状態の「信頼できる情報源」は、ディスプレイ ウィンドウ モード、具体的にはディスプレイの TaskDisplayArea のウィンドウ モードです。シェル コンポーネントとランチャー コンポーネントは、DisplayAreaInfo またはディスプレイ コンテキストの WindowConfiguration を介してこの状態にアクセスできます。