Android™️ 用 Windows サブシステム

Android™️ 用 Windows サブシステムを使用すると、Amazon Appstore で入手できる Android アプリケーションを Windows 11 デバイスで実行できます。 Android は Google LLC の商標です。 このガイドは、Windows デスクトップ デバイスを対象とし、Windows オペレーティング システム用に最適化することに関心のある開発者向けに書かれています。

重要

マイクロソフト社は、Windows Subsystem for Android™️(WSA)のサポートを終了する。 その結果、Windows上のAmazon Appstore、およびWSAに依存するすべてのアプリケーションとゲームは、 2025年3月5日よりサポートされなくなります。. それまでは、テクニカルサポートをご利用いただけます。
2024年3月5日以前にAmazon AppstoreまたはAndroidアプリをインストールしたお客様は、2025年3月5日の非推奨期限まで、これらのアプリに引き続きアクセスできます。 ご不明な点がございましたら、サポートチーム (support.microsoft.com)までお問い合わせください。. 私たちは開発者コミュニティのサポートに感謝し、経験を進化させるためにフィードバックに耳を傾けることを約束します。

Android アプリを Windows 11 のデバイスで使用できるようにするには、次のことを行う必要があります。

詳細情報またはサポート:

このガイドは、Windows で Android アプリをテストおよびデバッグするのに役立ちます。

開発者向け GitHub

Windows Subsystem for Android™️ ロードマップの詳細を確認し、開発者の問題について話し合い、サブシステム チームにバグや機能要求を提出しますか? ️Windows Subsystem for Android™️ Developers GitHubにアクセスしてください。

プレビュー プログラム

Android™️ 用 Windows サブシステム プレビュー プログラムでは、ユーザーは Windows 上のAndroid™️ 用 Windows サブシステムと Amazon Appstore の早期プレビュー ビルドを受け取ることができます。 詳細については、プレビュー プログラムのページを参照してください。

開発環境を設定する

Windows デスクトップ環境で Android アプリをテストするには、セットアップが少し必要です。

前提条件

Windows Subsystem for Android™️ は Windows 11 で利用できます。 デバイスは、特定の要件 (デバイス要件) を満たしている必要があります。

Amazon Appstore をインストールする

Microsoft Store では、次の 2 つのユーザー操作のいずれかが実行されると、Windows Subsystem for Android™️ がバックグラウンドで自動的にインストールされます:

  1. Microsoft Store から Amazon Appstore をインストールします。 [取得する] を選択すると、アプリのインストールが開始されます。
  2. Microsoft Store から Android アプリを初めてインストールすると、Amazon Appstore もインストールされます。

その後、Amazon Appstore は Windows 11 の [スタート] メニューに表示され、検索で利用できるようになり、Android アプリの精選されたカタログが提供されます。 モバイル アプリの設定と機能を制御できる Windows Subsystem for Android™️ アプリも [スタート] メニューに表示されます。

Screenshot of Microsoft Store page featuring the Get button on the Amazon App Store

Note

Amazon Appstore on Windows (Windows 11 で Android アプリを実行するために必要) は、一部の地域で利用可能です。

Android™️ 用 Windows サブシステムの設定

Windows Subsystem for Android™️ の設定を変更するには: スタート > すべてのアプリ > Windows Subsystem for Android™️ に移動します。 特定の設定アプリ機能の詳細については、「Windows でモバイル アプリの設定を管理する」を参照してください。

Screenshot of Latte app settings

テストとデバッグ

Windows Subsystem for Android™️ を使用して Windows 11 デバイスでアプリをテストおよびデバッグするには、次のセットアップ手順が必要です。

Windows の設定で開発者モードを有効にする

最初に開発者モードを有効にする必要があります。 Android™️ 用 Windows サブシステムの設定を開きます。 開いたら、[詳細設定][開発者モード] を有効にします。

デバッグのために Windows Subsystem for Android™️ に接続する

デバッグのために Windows Subsystem for Android™️ VM に接続するには:

  1. Amazon Appstore を使用してインストールされた Android アプリを起動します。

  2. 次のコマンドを使用すると、adb connect を使用して接続できます (adb がインストールされている必要があります)。

    adb connect 127.0.0.1:58526
    

テスト デバイスに接続する

Windows/Mac から同じネットワーク上の (Windows Subsystem for Android™️ がインストールされている) テスト デバイスに接続するには:

  1. テスト デバイス (Android™用 Windows サブシステムがインストールされているデバイス)で PowerShell ウィンドウを開き、次のコマンドを実行してテスト デバイスの IP アドレスを識別します:

    ipconfig
    
  2. Android Studio と Android SDK がインストールされているデバッグ デバイス ターミナルを使用して (Mac/Windows)、次のコマンドを入力します。

    adb connect <TEST DEVICE IP ADDRESS>:58526
    

<TEST DEVICE IP ADDRESS> は、テスト デバイスからの "ipconfig" の出力で確認できます。 Android Studio からアプリを展開してデバッグすることもできます。

Android Debug Bridge (ADB) を使用して開発ワークステーションを Android デバイスに直接接続し、パッケージをインストールして変更を評価できるようにするには、Android Open Source Project のドキュメントの Android Debug Bridgeに関するページを参照してください。

アプリのデバッグ

アプリをインストールするには Amazon Appstore を使用する必要がありますが、Windows デバイスでの Android アプリのデバッグは、APK (Android アプリケーション パッケージ) と adb (Android Debug Bridge) を使用して行うことができます。

adb を使用して APK をデバッグするには:

  1. 上記の手順に従って、Windows Subsystem for Android™️ VM に接続します。

  2. adb インストール コマンド adb install app-debug.apk を使用して APK をインストールします

    予想される出力:

    Performing Streamed Install
    Success
    
  3. 正常に "アプリがインストールされた" という通知が Windows 通知メニューに表示され、選択するとアプリが起動します。

ユニバーサル APK の構築

Windows Subsystem for Android™️ では、Intel Bridge Technology を利用して、x86 ベースのプロセッサで Arm アプリケーションを有効にします。 Arm アプリケーションは、Arm ベースのプロセッサ上でネイティブに実行されます。 エミュレーション レイヤーでは、パフォーマンスのオーバーヘッドが発生します。最適なパフォーマンスのため、x86-64 と Arm64 両方のアーキテクチャ用のアプリケーションを送信してください。

Windows デバイスの入力互換性に関する考慮事項

Android アプリのコードの更新が必要になる可能性がある、考慮する必要がある固有の入力動作がいくつかあります。これらは、Amazon Appstore を介して Windows デスクトップ デバイスで実行される場合は互換性があるよう、ハンドヘルド デバイス向けに設計されています。

キーボード入力

EditText などの画面上の仮想キーボード入力方式 (または IME) によって処理されるテキスト入力フィールドの場合、アプリは想定どおりに動作するはずです。 (Android ドキュメントの EditText クラス)。

フレームワークによって予測できないキーストロークの場合は、アプリ自体で動作を処理する必要があります。 これがアプリに既に実装されている場合、追加の作業は必要ありません。

たとえば、一部のゲームでは、タッチ入力と共に、キーボードの wasd キーを利用した移動が既にサポートされている場合があります。

Windows 11 デバイス用に構築するときに、開発者がコードの更新を検討する必要があるキーボード入力を次に示します。

  • Enter キー
  • 方向キーとタブ キーのナビゲーション
  • 選択項目の強調色の変更
  • Ctrl キー ベースのショートカット

デスクトップ デバイスでこれらのキーボード入力シナリオを最適化する方法の詳細については、Android のドキュメントを参照してください。

マウス入力

開発者は、Windows デバイス用に構築するときは、次のマウス入力に関するコードの更新を検討する必要があります。

  • 右クリック
  • ツールヒントとホバー テキスト
  • ホバー効果
  • マウスのスクロール ホイールの操作
  • ドラッグ アンド ドロップ

キーボード入力と同様に、マウス入力についても、公式の Android アプリ ガイドラインに従う必要があります。 これは、InputDevice クラスと SOURCE_MOUSE 定数を組み合わせて使用することを意味します。 デスクトップ デバイスでこれらのマウス入力シナリオを最適化する方法の詳細については、Android のドキュメントを参照してください。

ウィンドウの管理とサイズ変更

従来のモバイル フォーム ファクターとは異なり、Windows 11 で実行される Android アプリでは、自由にサイズ変更することができ、サイズ変更にすばやく応答する必要があり、Windows のアクションとジェスチャを使用してスナップできます。

画面の最小要件

Windows 11 では、9 インチより大きい画面については 720p 解像度 (1280x720) の最小画面要件が適用されます。

文字とピラーのボックス化

ウィンドウ サイズの縦横比が、ウィンドウが表示されるデバイスの画面サイズの間で一致していない場合、結果は Letterboxing (ウィンドウの幅が高さより大きい、つまり横に長い) または Pillarboxing (ウィンドウの幅が高さより小さい、つまり縦に長い) になることがあります。 結果として、ウィンドウを中央に配置するため、ウィンドウの端にバーが配置されます。 これらのバーは、選択されているシステム設定に応じて、淡色または濃色のテーマになる場合があります。 これは、Android アプリがスナップまたは最大化されている場合にのみ必要に応じて行われるので、Android アプリは Windows の豊富なスナップ機能を利用し、ウィンドウ モデルに統合できます。

Letterboxing and Pillarboxing example showing blank bars that center the window

サイズ変更に関するその他の考慮事項

Windows 11 デバイスで実行するように Android アプリを更新するときは、ウィンドウの管理とサイズ変更に関して、次の点も考慮する必要があります。

  • 初期起動サイズ
  • ウィンドウの寸法
    • コンテンツの境界
    • 自由形式のサイズ変更
  • 画面の向き

デスクトップ デバイスでウィンドウ サイズ変更のシナリオ用に最適化する方法の詳細については、Android ドキュメントのウィンドウ管理ガイドを参照してください。

アプリケーション ライフサイクル イベント

マルチウィンドウ環境用の Android アプリケーションの開発は、アプリケーションで利用することを選択したライフサイクル イベントに影響します。 onPause イベントをオーバーライドすると、電話やタブレットで目的の結果が得られる場合もありますが、アプリの UX を変更する場合は通常、このイベントを使用するべきではありません。

ライフサイクル イベントの詳細については、Android のドキュメントを参照してください。 多くの場合、onPauseonUserLeaveHint イベントではなく onStop イベントを使用することをお勧めします。 実際、多くのマルチウィンドウ Android 実装では onUserLeaveHint 通知が配信されないため、そのイベント ハンドラーに含まれる可能性のあるビジネス クリティカルなロジックは、Windows Subsystem for Android™️ を含め、これらのプラットフォームでは呼び出されません。

VM のライフサイクルに関する考慮事項

Windows Subsystem for Android™️ では、 AOSP フレームワーク およびキーボード、マウス、タッチ、ペンなどのデバイスとの互換性を提供する仮想マシン (VM) を利用します。

Windows Subsystem for Android™️ を使用してアプリを実行している VM には、次の 3 つの状態が考えられます:

  1. 実行中
  2. Lightweight Doze (軽い居眠り): 3 分間アプリのアクティビティがないとアクティブ化されます。 ユーザー アクティビティまたはアプリ通知によって非アクティブ化されます。
  3. 非実行中: 7 分間アプリのアクティビティがないとアクティブ化されます。

これらの状態間の遷移は、ユーザー アクティビティ (Android アプリの起動や操作、アプリの通知など) によってトリガーされます。 Android アプリは一時停止された後、ウィンドウが最小化されると停止されます。

VM lifecycle graph showing the running, lightweight doze, and not running

VM のプロパティ

Windows Subsystem for Android™️ VM のプロパティを次に示します。 将来の非互換性の原因となる可能性があるため、これらの値をハードコーディングすることは推奨されません。

プロパティ
Build.MANUFACTURER Microsoft Corporation
Build.MODEL Android 用サブシステム (TM)
Build.VERSION.SDK_INT 33
Build.BOARD windows

Windows アプリにリダイレクトする

Windows Subsystem for Android™️ では、ファイルと一般的な URI スキームの意図が、対応する Windows の既定のファイル/プロトコル ハンドラーに自動的にリダイレクトされます (複数の意図フィルターが一致する場合、ユーザーには chooser ダイアログに「Windows 既定のアプリ」オプションが表示されます)。 サポートされているファイル意図には、ACTION_VIEWACTION_EDITACTION_SEND、および ACTION_SEND_MULTIPLE が含まれ、この意図はファイルを開く前に Windows ダウンロード フォルダーにコピーします。 サポートされている URI 意図には、http/https スキームの ACTION_VIEW と、mailto スキームの ACTION_VIEWACTION_SENDTO が含まれます。

Android アプリでは、カスタム URI スキームを使用して Windows アプリに手動でリダイレクトすることもできます。 意図アクションを com.microsoft.windows.LAUNCH_URI に設定し、カスタム URI を値として指定した文字列を com.microsoft.windows.EXTRA_URI という名前の意図に追加します。 たとえば、Android アプリ (Java) から Windows 電卓アプリを起動するには:

Intent intent = new Intent("com.microsoft.windows.LAUNCH_URI");
intent.putExtra("com.microsoft.windows.EXTRA_URI", "ms-calculator:");
 
try {
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    // Not running in Windows Subsystem for Android™️ (or running on an older build that did not contain this feature).
}

Security

Windows カーネル モード ドライバーと、中整合性レベル (IL) で実行されている Windows アプリケーションの両方で、任意の Android コンテナーと Android アプリのメモリを検査できます。 チート、マクロ、ボット、疑わしい動作に関する検出が追加される予定は、短期的にはありません。

開発者は、getSecurityLevel のクエリを実行すると SECURITY_LEVEL_SW_SECURE_CRYPTO を取得します。 getSecurityLevel の詳細については、Android API のリファレンス ガイドを参照してください。

Windows Subsystem for Android™️ のアンインストール ️

Windows Subsystem for Android™️ をアンインストールできますが、関連するすべてのアプリもアンインストールされることに注意してください。

  • Amazon Appstore をアンインストールすると、Windows Subsystem for Android™️ とその他すべての Android アプリがアンインストールされます。
  • Amazon Appstore アプリをアンインストールすると、アンインストールされるのはアプリだけです (Windows アプリと同じ動作)。
  • Windows Subsystem for Android™️ をアンインストールすると、Amazon Appstore とすべての Android アプリがアンインストールされます。

問題のトラブルシューティング

Windows で Amazon Appstore に固有の問題が発生する場合は、次のトラブルシューティング手順を試してください。

  1. Windows のタスク バーから [Windows Search] を選択します。
  2. "Amazon Appstore" を検索し、Amazon Appstore のアイコンを右クリックします。
  3. ドロップダウン オプションで [アプリの設定] を選択します。
  4. [ストレージとキャッシュ] を選択し、[Clear Storage](ストレージのクリア) と [Clear cache](キャッシュのクリア) の両方をクリックします。
  5. 戻って [Force Stop](強制停止) を選択します。
  6. Amazon Appstore の設定ウィンドウを閉じます。
  7. Amazon Appstore を再起動します。

Windows Subsystem for Android™️ Settings アプリに関連するトラブルシューティング手順、またはフィードバック Hub を使用してフィードバックを送信する手順については、Windows のモバイル アプリのトラブルシューティングと FAQ を参照してください。

その他の開発者の質問やサポートについては、[Microsoft Q&A の Windows Subsystem for Android™️ タグ] を使用してください。

その他のリソース