Windows Subsystem for AndroidがWindows Insider Previewに載ったということで、ついついうっかり試してしまったので、Android屋から見た雑感をメモっておきます。(2022/8/24現在)
結論
ChromebookのAndroidよりもマシ。
以下、雑感。他人のアプリはほぼ使ってません。
Android バージョン
昨年書かれた記事ではAndroid 11となっていたのですが、インストールされたのはAndroid 12でした。ホーム画面がないのに、Material Youテーマとか死なずに動く。(意味はないけど)
Androidのメジャーアップデートに追随できているので、この先のメジャーアップデートにもついて行けるかも?
メモリ使用量
Surface Laptop Go (RAM 8GB)にインストールしたところ、起動前 4GB→Androidアプリ起動後 6GB(2GB空き)ぐらいの状態。もう少しメモリ欲しい。
CPU利用率
Core i5 (4C8T)で、アイドル状態でも4core x 1.0~1.3GHz x 10~15%ぐらいの負荷がかかり続ける。
VMWareにインストールしたBliss OS(Android 9)でアイドル時のCPU負荷が6~9%なので、ちょっと負荷が高い印象。使ってても割と電池が減ってく。
ADB接続
adb connect <PCのIPv4アドレス>:58526
で、LAN内のPCからリモート接続できる。
Android StudioのリモートADB機能(QRとかコードで繋がる奴)には未対応。
アプリ間通信周り
結構ちゃんとしてる。
Intent -> 問題なく通る。(Chromebookでは一部Actionが置き換えられたりする)
Service -> ちゃんと動く。(別アプリのサービスをBind出来る)
Broadcast -> 通る。
Storage Access Framework -> 普通に使える。(Chromebookでは、OPEN_DOCUMENTではChromeOSのファイルマネージャが開くのに、CREATE_DOCUMENTではAndroid側で画面が出るとか、整合性がとれてなかったりする)
Document Provider -> 自作のDropbox Providerが普通に使えた。
Query Package -> ちゃんと動く。
などなど、アプリ間通信で連携しまくる自作アプリ群がちゃんと連動できました。
ブラウザ連携周り
Dropbox SDKからブラウザにOAUTHを投げるシーンでは、Android側のアプリ内ブラウザでは認証が通らない問題が出たが、Windows側のChromeで開き直すことが可能だった。認証後、コールバック用のカスタムスキーマをAndroidアプリに返してくれる。ちゃんとしてる。
日本語入力周り
WindowsのIMEを使う
AndroidのTextViewにWindowsのIMEから入力が出来る。
MS-IMEは使い込まなかったので未評価。ATOKでも動くが、使ってるうちにカーソル位置と文字が入力される場所が変わってくるなど、バギーなので実質使い物にならない。
AndroidのIMEを使う
外部キーボード用のIMEをインストールしてみたところ、キーボード切り替え設定画面の呼出で、Windowsの関係ない設定画面を呼び出してしまうので先に進めない。
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings
これで設定画面を呼び出してやると、言語の設定でAndroid内のIMEをアクティブに出来る。
このままだと、ALT+`とかのホットキーをWindows側のIMEに取られてしまうので、WindowsのIMEにENGを追加してやって、AndroidのIMEに全部のキーを渡せるようにする必要がある。
これで、AndroidのIMEを使った日本語入力が可能になる。
ただし、IMEアプリからターゲットアプリのWindowに描画が出来ないので、変換候補を出すためのポップアップが表示されない。
これはWSAの基本仕様と思われるので、AndroidIMEを使うのは諦めた方がいいかも。(Chromebookも一時期導入されたものの、似たような感じで諦めてた)
ちなみに設定アプリを出しても、ほとんど役に立つ項目は無い。
キーボード周り
BACKキーは ALT+左矢印キーに割り当てられてる。
ESCAPEキーをBACKに割り当てたかったんで、キーボードレイアウトを入れ替えてみたけど、反映されなかった。
ポップアップウインドウ
アプリ内で出しているポップアップウインドウが、Anchorとはかけ離れたところに描画される。
Windows IMEの候補ウインドウが、キャレットとかけ離れたところに描画される。
この辺はそのうち直ると思う。
原因不明
DeployGateが起動後10数秒でクラッシュしてウインドウ毎消えてしまう。仕方がないので、DeployGateからWindowsにAPKをダウンロードしてADBインストールしました。
技術情報がでてないこと
Microsoftはロードマップと技術情報ちゃんと出せよな。
- 今動いている環境がWSAであることをどうやって検出したらいいのか。
- 課金機能に関するエコシステムをどうするつもりなのか。
- Windowsストアでのアプリの扱いどうするのか。
- OpenGapps入れる輩をどうするのか。
- 海賊版の繁殖の地にならないようにどうするつもりなのか。
などなど。課題はいっぱいある。
個人的要望
二本指ジェスチャーでBACK/FORWARDをエミュレーションして欲しい。
まとめ
PCでAndroidをやるための環境比較。(個人的な感想)
環境 | 評価 |
---|---|
WSA | ×電池消費が多い |
×IME周りが不安定で実用の域に達していない | |
○レスポンス・描画性能は割といい | |
Chromebook | ×IMEの選択肢がない |
×OSの機嫌が悪いとアプリ毎吹き飛ぶ | |
○レスポンス・描画性能は割といい | |
○Google Playが使える | |
VMWare+BlissOS(Android9) | ×フットプリントが大きい |
×電池消費が多い | |
×時々プチフリする | |
○安定して動く | |
BlissOS(Android11)実機 | ×電池状態が読めないので安心して使えない |
×スリープ中の電池消費がそれなりにあるので、気付いたら電池使い切ってる | |
○レスポンス・描画性能はいい | |
○安定して動く | |
○メモリが全部使える |
てな感じで、今の所、VMWareでBlissOS(Androdi9)を使うのが一番安定してる。
理想のAndroidBookを探す道のりはまだまだ遠そうである。
使い途(Android屋限定)
Android屋がちょっとしたGUIツールを作るのにWSAを選ぶのは、余り割に合わない気がする。(フットプリントが大きいため)
Android Studioのエミュレータの代わりにするのも、ないかな。