CordovaでCrosswalkを使う-2

CordovaでCrosswalkを使う為の記事、第2回です。

今回は主に実践関係の記事が中心で、知識関連の話は第1回で行っています。

スポンサードリンク
↓ 記事の続きはこちらから

Crosswalkプラグインの導入

Cordovaの場合、Crosswalkを使うためのプラグインが用意されているので導入はとても簡単です。

まずコマンドプロンプトでCordovaプロジェクトのディレクトリに移動します。
そしてバージョンを確認。

cordova用のCrosswalkプラグインは5.0.0以降で動くとされているので、それより前のバージョンだった場合は次の記事を参考にしてバージョンアップします。

どのみちCordovaのバージョンが低すぎると、GooglePlayで公開できないし・3・;

Cordovaのバージョンが低くてGoogleから警告を受けた話
GoogleからCordova v.4.1.1以上にせよと警告される を見に行く

そもそもCordovaの環境も整ってない人はこちら
Cordova開発環境の構築-PART1 を見に行く

バージョンに問題が無ければ、いよいよCrosswalkプラグインを導入します。

これだけでOK!
プラグイン万歳!

ビルド関連のあれこれ

プロジェクトのconfig.xmlを編集して、
動作を許容する最小のAndroidのバージョンを指定します。

ここが正しくないとCrosswalkといえど、ちゃんと動いてくれません。

Android4.0を想定するのでminSdkVersionの指定は14です。
ちなみに4.4は19で、5.0は21、6.0は23となります。

たとえばここに21を指定していたらAndroid5.0以降向けになるので、Android4系ではインストールすらできません。

更にちなみに、既存アプリのバージョンアップの場合は、widgetのバージョンも今より大きな値に書き換えておきます。

config.xml を書き換えたら、変更を反映させて、さっそくビルドします。

試しにRPG Maker MVで作った焼肉リッカーでビルドしてみました。
(誠に遺憾ながら、現在うちで一番ダウンロード数の多いAndroidアプリ)

Crosswalk有無のビルド容量比較

一番下のやつは、これを書いている時点でのGooglePlay公開バージョンに使ったファイルで、当然Crosswalkも導入していません。

Crosswalk導入後は容量がでかい
明らかにでかい!

導入していない時と比べてAPKのサイズが20~25MB程増える様子。
アプリ内にブラウザをまるまる放り込んでいるようなものだから、仕方ないといえば仕方ない。

成果物をよく見てみると、armv7とx86の2タイプのファイルが出来ている事がわかります。

どちらもCPUの種類の名前で、
ARMはAndroid端末のCPUとしてはとても一般的な規格、
x86はインテルのCPUといえばコレという有名なやつです。

Crosswalkの公式FAQによると、
「ARMとx86の両方に対応する一番の方法は、それぞれのCPU用にアプリを分ける事です」と記載がありますので、
それを踏まえてCPU名のついたAPKファイルが出来上がるのでしょう。

試しにARMのAndroid上からx86の方をインストールして実行するとこの通り。
ミスマッチだと怒られてしまいます。

CPU指定を無視したAPKを起動すると怒られた

ちなみに今回試したバージョンでは、日本語設定のAndroidでもCrosswalk関連のエラーメッセージはバリバリ英語でした。

現状だとx86のAndroidは存在自体が割と特殊です。(たぶん)
普通にアプリとして配布する分には、ARM用のAPKを選べば良さそうです。

実際に起動してみる

当然といえば当然ですが、Android5系では普通に起動できました。

焼肉リッカーが動作したよ!

なんとなく怒られそうなので、やっつけで消していますが、AdMob広告もバッチリ表示できているようです。

Crosswalkの解説を見ていると、
Android4系なら問題なく実行できそうに見えますが、
RPG Maker MVのマニュアルからOutput Formatsを参照してみると、
Crosswalkの導入をしているにもかかわらず
動作環境をAndroid4.4以上としているので
Jelly Bean世代とかでどう動くのか、そもそも動かないのか気になるところです。
試しにAndroid4.4(エミュレータ)で起動してみると、
GooglePlayに接続してアップデートしろと表示されました・3・

この辺りの挙動調査は実機が無いと進まなさそうですね(残念)

RPG Maker MVのマニュアル通り、
Android4.4以上でしか動かないのであれば、
config.xmlのminSdkVersionも19に設定してビルドするべきです。
個人的には「アプリに入れたCrosswalkのバージョンで描画する」という決め打ちで、
アップデートせずに利用する方法もあって良いと思うのですが、どこかで設定できるのか探したいところ。

セキュリティとかの観点で無理かな?

INSTALL_FAILED_UID_CHANGEDが出た時

Crosswalkを導入して気になった事がもうひとつ。

「INSTALL_FAILED_UID_CHANGED」というエラーが出て、
ADBからのAPKインストールに失敗しまくりました。

過去に別のPC経由でインストールしたAPKを、
更に別のPCからインストールしようとすると出るエラーらしく、
セキュリティに関わる部分の為か、
アプリをアンインストールしても改善されないようです。

こういう現象が起きた時は、
config.xmlからアプリ名を書き換えて(prepareを忘れない)
ビルドしなおすとインストールできます。
これで安心と思いきや、
アプリ名を変えたうえでインストールを繰り返すとまた表示されました。

根本的な解決方法を見つけたいです・3・;


コメントを残す

メールアドレスが公開されることはありません。