chromeos-apkを早速使ってみた


AndroidのアプリケーションをChrome OS上で動かせる形式に変換するツール「chromeos-apk」が公開されました。
Googleが「App Runtime for Chrome」(AndroidアプリをChrome OSで動かす機能)を正式に公開→Androidアプリの開発元が対応する
という道のりを考えるとまだまだ先だなぁと思っていました。
「chrome-apk」のソースを読みましたが、まさかこんな方法で実現できるとは。。。
この投稿では「chrome-apk」の使い方を記載します。

実行環境

  • chromebook
  • node.jsがインストールされている環境(私はcroutonでインストールしたxubuntuにインストールしました)
  • Chrome OS上で動かしたいAndroidアプリ(apk)

chrome-apkの使い方


と言っても「chromeos-apk」の説明欄にすべて書いてありますが一応
まずは「Android版Vine」をインストールし、自分のchromebookでAndroid版アプリが動くかを確認します。
これが動くのであればまずは第一関門突破です。
ここからはnode.jsが動く環境にて実施します。 まずUbuntuで本作業を実施する方は下記のコマンドにて「lib32stdc++6」をインストールする。
sudo apt-get install lib32stdc++6

次にnode.jsにて「chromeos-apk」をインストールする。
npm install chromeos-apk -g

上記までの作業が終わったら早速apkを変換しましょう。
変換時のコマンドは
chromeos-apk [apkのパス]

上記のコマンドを実施すると
Failed to parse package name in the APK.

のようなメッセージが出ることがあります。
これはAPKのパッケージ名が分からないよ~みたいな状態です。これが発生した時は変換対象のアプリをマーケットで開いた時のURL
https://play.google.com/store/apps/details?id=[ここ]

の文字列がパッケージ名です。(違う場合もあるのかな?)
ここまで終わると
Copy that directory onto your Chromebook and use "Load unpacked extension" to load the application.

が表示され処理が完了します。
先ほどのコマンドで指定したAndroidアプリがあるパスにパッケージ名のディレクトリが作成されているはずです。
もしエラー的なメッセージが表示されたら残念ながらそのアプリは対応していないようです。。。
ちなみにタブレット用のAndroidアプリの変換は下記のコマンドで実施できます。
chromeos-apk [apkのパス] --tablet

変換したアプリのインストール


ここまでくればもうすぐです。
あとは変換したアプリをChrome OSにインストールします。
インストール方法は単純で、Chromeの「拡張機能」画面にて「デベロッパーモード」にチェックをします。(既にされている場合は不要)
「パッケージ化されていない拡張機能を読み込む」ボタンを押下します。
ファイラーが起動したらツールにて作成されたディレクトリを指定します。
すると先ほどインストールした「Vine」が作成したアプリに指し替わります。(この挙動を後程説明します)
インストールはこれで完了です。あとはアプリを起動すればAndroidアプリが起動します。

AndroidアプリをChrome OS上で動かすための制約


制約というほど大げさな話ではないのですが、結論から書くとAndroidアプリをChrome OSにインストールできる数は4つまでです。
まずはChromeの「パッケージ化されていない拡張機能」のインストールの流れを説明します。
「パッケージ化されていない拡張機能」はインストールする際に「manifest.json」の"key"に設定された文字列(拡張機能に振られたID)と同一のIDを持つ拡張機能が既にインストールされている場合、上書きをします。
変換したアプリのインストール時に拡張機能の「Vine」が指し替わったのは変換したアプリのIDが「Vine」のIDと同じだったためです。(ツールで作成されたディレクトリ内に「manifest.json」はあります。)
ではなぜ「Vine」と差し替える必要があったのか。
どうもChrome OSの「App Runtime for Chrome」は拡張機能のIDを見て「App Runtime for Chrome」で起動するかの判断をしているようです。
そこで最初に記載した「AndroidアプリをChrome OSにインストールできる数は4つまで」の理由。
それは現在「Chrome OS上で動かせるAndroidアプリはChromeウェブストアに4つしか公開されていないから。」
ちなみに4つインストールしたい場合、Chromeウェブストアに公開されているAndroidアプリ4つすべてをインストールし、 変換したアプリをインストールする前にRunning Multiple Appsに記載された「Key1」「Key2」「Key3」「Key4」の文字列を変換したアプリの「manifest.json」の"key"の値にセットすれば、Chromeウェブストア空インストールしたAndroidアプリ4つすべて指し替わります。
今後Chromeウェブストアへ公開されるアプリが増えればその数だけAndroidアプリをChrome OS上で動かせるわけですねぇ。

まとめ


私は早速Android版Skypeをインストールしました。
こうなってくるとますますxubuntuの使いどころがなくなるなぁ
Chrome OS上でnode.jsを動かす方法を考えた方がいい気がしてきた。

Popular posts from this blog

chromebook(c720)にxubuntuを入れてみた

croutonで知っていて得をするかもしれないコマンド