アズルレーンを PINE64 で動作させるまで

艦これ系のスマホアプリとしては、(Android の動作確認ができそうなのが)戦艦少女R か アズルレーン な訳ですが、ボトムズコラボということで、アズルレーンを入れてみます。ちなみに、大陸版の碧蓝航线を使ってもいいのだけど、biiibiliや百度のIDが必要であったりあれこれとややこしいので、日本語版のアズールレーンを使う。

ちなみにボトムズは本放送を中学生の頃に見ていた世代なんだけど、アズレンのユーザーとしては何処にいるのかは分からないw ターゲットは謎だ。ちなみに↓はボトムズではない。

Pine64 + Android 上でアズレンが動くと↓なように HDMI 接続で液晶モニタに表示できるようになる。操作はマウスなんだけど、WiFi でのキャストと違って映像が直結するのでスマホ画面との遅延は皆無になる。まあ、なったところで何か意味がある訳ではないけど、もっと大き目の TV に繋げばデモ的には面白い?

PINE 64 とは?

組み込みボードだとラズパイが有名なのところだけど、いくつか互換機がある。互換機とはいっても、本家?ラズパイよりも性能が良かったり、様々な拡張が為されていたりして使いようによっては面白いことができる。手元にあるのは「PINE A64」で、個人輸入したものなんだが(普通に本家からクレジットカードで買うだけなんだけど)、最近は秋月でも売っている。ラズパイは5,000円位かかるのだが、PINE64 はモノによっては3,000円位で安く購入ができる。

Android 6.0 を PINE 64 に入れる

Pine A64 Software Release – PINE64 から、Android 6.x の image をダウンロードする。最新版は、Android 7.1 なんだけど、手元の実機が 6.0 なので、それにあわせる…と思っただが、6.0 だと動きがいまいちなので Android 7.x に切り替える。

Win32DiskImager を使って microSD カードに焼いたら、PINE 64 のボードに入れて起動させれば ok. ちっとばかり、起動に時間がかかるが、↓な感じで起動できれば大丈夫。

Android 6.x のディスクイメージは 8GB、16GB 等と揃っているのだが、16GB を使っている。8GB だとなんやかやとアプリをインストールすると足りなくなってしまうのと、最近のラズパイでも 8GB だと足りなくて 16GB を使うことが多くなっているので。PINE 64 には USB が付いていて、USB メモリを差し込むこともできるから、大き目のアプリ(*.apk)は USB メモリからインストールすると楽だったり。

Google のアカウントを登録すれば Google Play からもダウンロードができる。

PINE 64 へ adb で接続する

この手の組み込むボードで Android を動かす目的のひとつとして、root が簡単に取れるというのがある。実機の Android だと root を取るのにあれこれやらないと駄目だし、復帰させるのも結構大変なのだが(実機は実機で便利なのだけど)、組み込みボードに Android を入れたときには、microSD カードを直接除くとか、動作時に既に root 化されている(Android Things も含めてそういう目的なので)のが普通だったりする。そうそう、エミュレータを利用して、〇〇を抜き出すというのもあるのだが、そういうこともできる。microSD カードを直接除けばいいわけだし。

この画像は「戦艦少女R」の場合

以下は、Android 6.0 の時の場合。7.x の場合は、最初から adbd が立ち上がっているので、起動直後から adb connect できる。Android 7.1 Community Image [v0.3.10-r66] をインストールしている。

~~~

root 化はさておき、vysor を使って画面をリモートで操作したり、アプリを adb 経由で入れたいときになどには、なんとかして PINE 64 に接続しないといけない。が、PINE 64 ボードに差し込む micro USB や電源供給だけなので、実機の Android のように OTG できない。なんじゃこりゃ?ってことになるので、↓のようにシリアルケーブルで接続する

Cubieと過ごす日々: PINE64にadbで接続
http://donadona-memo.blogspot.com/2016/07/pine64adb.html

ことになる…のだが、別な方法があった。SSHDroid をインストール&起動させた後に、Tera term の SSH から root/admin で接続。その後に

# setprop service.adb.tcp.port 5555
# stop adbd
# start adbd

する

image

この後、PC から adb connect <AndroidのIP> すれば ok.

image

ただし、Android Things のように、初めから adbd が start しているものもあるので、Android 側の init.rc を書き替えれば起動時に adb connect を受け入れるようになるはず。これは後から試してみる。

~~~

Google Play からインストールして起動

あとは、Google Play からインストールするか、あらかじめ *.apk ファイルをダウンロードして adb install でいれるか、USB メモリを使って入れるか、いくつかのパターンがある。

タッチパネルな機能は使えないので、あらかじめ実機でアズレンのチュートリアルをすました後に、PINE64 側で ID の引き続きをすればよいだろう。

Android 7.1.2 の場合は、有線LANが使えるのでコネクタにLANケーブルを挿し込んで高速にダウンロードができる。

image

アズレンの場合、自動的な戦闘(自律戦闘)が可能なので、戦闘中は眺めているだけでいい。マウスを使うのは、途中で何かを選択するときになる。

image

GPU の動きはちょっとぎこちないので、3Dアクションゲームみたいなのは難しいかなと思う。パズルゲームとかカードゲームならば大丈夫じゃないだろうか。

あと、CPU がかなり熱くなって熱暴走するので、ヒートシンクは必須っぽい。実機 Android でもかなり熱くなるから、Unity の CPU/GPU ぶん廻しは相当なものなのだろう。ちなみに adb shell で top を調べると、アズレン(com.YoStarJP.AzurLane)がどれだけ CPU を消費しているのかが分かる。20%弱位消費している。まあ、これだけ消費していればバッテリーの減りも早いのではないだろうか。

image

せっかく GPIO が使えるので、物理的なジョイスティックとか繋げて操作できないかなと思ったりするのだが、何か良い方法はないものだろうか。Android のサービスアプリを作ればいけそうなんだが。

カテゴリー: 開発, Android, アズレン パーマリンク