Chromeブラウザ上でAndroidアプリを動かす

2日ほど前に、このようなニュースが出てました。 2017年新発売のChromebookはすべて最初からAndroidアプリをサポート、Google Play Storeをいきなり利用できる

私の知る限り、いくつかのChormeOS端末では、既にGooglePlayStoreが利用可能です。ChromeOSで動くならChromeブラウザでも動きそうですよね。 調べるとChromeのExtensionでARC welderというものが提供されています。
ARC welderは2015年頃にリリースされたようで、そういえば一度試した記憶があります。その時の印象は微妙でしたが、最近改めて使ってみるとかなり改善されています。実用段階です。

導入

公式のドキュメントはこちらです。Getting Started with ARC

f:id:kazy1991:20170126063443p:plain

ARC welderからインストールするとchrome://apps/ にアイコンが表示されます。 起動すると、動作に問題がある旨の警告と、書込み可能なディレクトリを指定するよう言われるので従いましょう。

次にapkファイルを選択します。

apkが読み込まれると端末設定のような画面に切り替わります。基本的にそのままでOKですが、最下部のmetadataに以下の設定を指定すると便利です。
Chromeで動かす場合バックボタンが存在しないので、disableAutoBackButton はほぼ必須です。trueにすることで左上に常にバックボタンが表示されます。

{"sleepOnBlur":false,"disableAutoBackButton":true}

この他にも幾つかのmetadataが設定できるようです。 manifest.json configuration

動作確認

最後にtestを押すとchrome://apps/にアプリが登録され、起動します。
試しにcookpadを動かしてみました。(少し古いバージョンです)

おわり

ARC welder経由でのアプリの動作は想像以上に軽いです。IMEもそのまま使えるし、外部リンクは普通にChromeで開くことが出来ます。
Macであればデスクトップ上のDockに配置することも可能でほぼネイティブのように振る舞います。Androidエンジニアとしては楽しいですね。