WSA (Windows Subsystem for Android)で Windowsストアアプリを作る方法

[フリーソフト9VAeきゅうべえ](https://qiita.com/danjiro/items/253e5a33a38599098274)という、モーショングラフィックスアプリを、マルチOSで開発しています。

ZIPで配布しているWindows版9VAeを、C#を使ってMicrosoftストアアプリにできないか試したのですが、Win32 の [HDCをつかった描画や fopenを使ったファイル処理が不合格](https://dnjiro.hatenablog.com/entry/2021/08/24/110356)になるので、Cの移植をあきらめていたところ

[DXライブラリ](https://qiita.com/danjiro/items/7c7fae8bc8db916b3818)をつかった [Amazon Fire版9VAeきゅうべえ](https://dnjiro.hatenablog.com/entry/2019/12/11/000255)が、WSA (Windows Subsystem for Android(TM))で Windowsストアアプリになることを発見。ファイル共有を使って、Windowsのユーザーフォルダにも読み書きできるみたいです。DXライブラリをつかうとWin32用CプログラムをMicrosoftストアアプリにできました。

●WSAは 2024年３月で終了になり、現在、この記事の方法は使えません（追記）

ここでは、Windows11で WSAアプリを開発する方法を紹介します。

<iframe width="560" height="315" src="https://www.youtube.com/embed/PuWuzz1JJMc?si=RftvGVqGOMOT_TqB" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

# WSA (Windows Subsystem for Android(TM)) インストール

WSAをいれるには、[Microsoft Store から Amazon アプリストアをインストール](https://learn.microsoft.com/ja-jp/windows/android/wsa/)します。AmazonアプリとAndroidアプリは厳密には違うので、WSAはほんとは、Windows Subsystem for Amazon では？・・[Amazon 開発サイトでは、Windows用も開発してねとアピール](https://developer.amazon.com/ja/apps-and-games/blogs/2023/07/debug-android-apps-for-windows-11)してます。「Amazonアプリストア」をインストールするには Windows11 メモリ８GBが必要です。（４GB PCにはインストールできません）

![kani2mac01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67734/3aebe39a-022e-cd39-1726-0aba7d963afb.gif)

Windowsボタン＞すべてのアプリ＞amazon appstore＞Amazonアプリストアを入手

# 開発者モードON

WSAがはいったら、開発者モードをＯＮにします。

![kani2mac02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67734/5f5077d2-743f-69dc-4d79-9b5c07856183.gif)

Windowsボタン＞すべてのアプリ＞Android用Windowsサブシステム＞詳細設定

- 開発者モード ON
- 試験的な機能
    - ローカルネットワークアクセス ON
    - ユーザーフォルダを共有する ON

動作しない場合、一度再起動してみてください。

# adb インストール

WSAを実機デバッグするには adb を使います。Android Studio をインストールすればよいですが、単独でインストールしたい場合は、[Android SDK Platform-Tools ](https://developer.android.com/studio/releases/platform-tools?hl=ja) でもよいです。



# PowerShell でWSA実機に接続

![kani2mac03.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67734/ff6f94bf-102c-7582-f145-2470dddc8b51.gif)


PowerShell から以下を実行(D:\tools に Platform-Toolsをいれた場合。AndroidStudioをいれた場合は、AndroidStudio>File>Project Structure>SDK Location から SDKの場所に platform-tools があります)

```shell
D:\tools\platform-tools\adb connect 127.0.0.1:58526
```
- 「ADBのデバッグを許可しますか」が表示されたら「許可」ボタンを押してもう一度実行してみてください。

ipconfig で、Windowsのアドレスを確認

```shell
ipconfig
```
IPV4アドレス(xxx.xxx.xxx.xxx)をメモします。xxxは数字。このアドレスを使って、開発用パソコンから接続します。

# アプリ開発用パソコンとの接続

筆者は、Android版の開発を、M1 Macbookで行っています。iOS/iPad版と同時に開発できますし、ビルドも高速です。MacやLinuxから WSAをデバッグするには次のようにします。(Windows11上のAndroidStudioなら、デバッグできる状態になっているはずです)

![kani2mac04.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67734/95210866-f2d7-daaa-1c87-2389375aa8a5.gif)


## 開発機の adb パスの確認

Mac にAndroidStudio をインストールした場合、通常 adb はつぎのパスにインストールされます。ターミナルから以下の命令で、adb が動くことを確かめてください。<ユーザーフォルダ>はユーザーのフォルダ名に置き換え

```shell
/Users/<ユーザーフォルダ>/Library/Android/sdk/platform-tools/adb devices
```

エラーがなければ、OKです。

## 開発機 adb から実機への接続

Windows11と同じネットワークに接続し、ipconfig で調べた IPV4アドレスをつかって次の命令で接続します。

```shell
/Users/<ユーザーフォルダ>/Library/Android/sdk/platform-tools/adb connect xxx.xxx.xxx.xxx:58526
```

- 実機上で「ADBのデバッグを許可しますか」が表示されたら「許可」ボタンを押してもう一度実行してください。

成功すると、開発機の AndroidStudio に、WSA実機（Microsoft Corporation Subsystem for Android(TM）) が表示され、実機デバッグできるようになりました。

# 解説動画の作り方

この記事で操作手順を説明した動画素材は、[フリーソフト9VAeきゅうべえ](https://9vae.blogspot.com/p/9vae-download.html)の[ひとコマ(OnePicture)アニメ](https://dnjiro.hatenablog.com/entry/kaisetu)で作成しました。