2022/10/21 追記
Microsoft Storeで Amazon Appstoreが提供されるようになりました。
よって下記のインストール手順は必要なくなりました。
ただ、動作させたいアプリが Amazon Appsotreで提供されていない場合、野良apkのインストールを adb経由で行わなければならない点は変わらないと思います。
本題
誰かの役に立つかもね。
ついに Windows Subsystem for Androidが公開されましたね。
Windows Insider Program Betaの限定公開ぽいけど、下記サイト辺り拝見したらそれっぽく動くようになりました。Thanks!
(という性質の記事なので、地雷踏んでもめげずに自分でどうにか出来る人だけやってね)
(責任取れねぇずら)
インストール
- 最初に参考にさせて頂いた記事
- 実際に動作させる為に実行した諸々が記載されてる記事
① Insider Program 非経由で WSAをインストール
② WSAで使う adbの準備
③ adb経由で apkインストール
調べたこと
上記の通り、WSAで起動したアプリを adbで触れるかどうかが大切だったので、その辺分かった事を備忘録として残します。
-
(私は iOS/Android共にマルチウィンドウ機能に触った事が無いので、技術的に正確なワードを使えていない可能性がありますので、詳しい方はどしどし指摘して下さい。)
-
まず、Windows Subsystem for Androidでは、バックグラウンドで起動する Android Emuratorは 1つのみ。
- だから
adb connect
する先はWindows11の Windows Subsystem for Androidアプリの設定画面に表示される IP:PORTだけで OK.
- だから
-
複数の Androidアプリを起動した場合、それぞれのアプリが Android上において別ウィンドウで起動してる事になってる。
- んで、Android内部ではそれぞれのウィンドウに DisplayIDが付与してある。
-
その上で、Windows 11上の 1ウィンドウに対して Android上の 1アプリがまるっと描画されてる、という形になっている。
-
そんな状況になっているので、複数アプリ起動してる状況だと単に
adb shell input touchscreen tap 1 1
とかしてもどのアプリも反応しない。 -
必要なのは
./adb.exe shell input touchscreen -d <DisplayID> tap 1 1
の -d オプション。- じゃあ DisplayIDはどうやって取得するんじゃ?という話で、
./adb.exe shell dumpsys | Select-String "mDisplayInfo=DisplayInfo"
でアプリに対応する DisplayIDに見当は付けられました。
(もっと簡単な方法があったら教えて)
- じゃあ DisplayIDはどうやって取得するんじゃ?という話で、
-
後はぱぱぱっと DisplayID取り出して、-d オプションに渡してあげれば、指定アプリにイベント送れます。
-
追記後使用感
-
WSA起動後は、ディスプレイ全体が Androidのモニタとして利用される。
- その弊害か、[開発者モード] -> [ポインタの位置]オプションを有効化すると WSAがクリックイベント全部吸ってしまって、Windowsとしての操作が概ね出来なくなる(Androidアプリのウィンドウ上以外のクリックが効かなくなる)ので気を付ける事。
- キーボードイベントは Windowsが処理出来るらしく、Alt + Tabとかでアクティブウィンドウの変更とかすると、そのウィンドウ上だけはクリックイベントが無事に処理される(っぽい)。
-
adbに connectするエミュレータの Port番号は[Android用Windowsサブシステム設定] -> [開発者]タブ -> [開発者モード]の説明欄 に表記されるようになった。
-
開発者向けオプションの最下辺りにある[アクティビティのサイズ変更を許可][フリーフォーム ウィンドウを有効にする][デスクトップ モードに強制的に切り替え][マルチウィンドウでのサイズ変更不可を有効にする]がそれぞれどのような挙動を設定するものなのか分からないけどとても気になる。誰か教えて。
また 1つ、Windowsが便利な OSになってしまった…
個人的には Hyper-V好きなので、Noxとか Bluestackとか (VirtualBoxとか)の為に Hyper-Vを OFFにせざるを得なかった今まではちょっとぐんにょりしてたけど…
今日でサードパーティ製の仮想化ツールとはオサラバだ!!!
\\\アプリ強制終了///
ん~~~~~~~、楽しいね!
これからもっと安定して便利になっていくと思うので、それも楽しみにしつつ今得られる便利を満喫していきましょう!