CordovaでCrosswalkを使う-1

タイトルの通り、CordovaでCrosswalkを使う事を目指した記事です。

長話の前にまず結論。
何を優先するかによって使い分けましょう!

  • Android4系の動作可能環境を増やしたい、安定させたいならCrosswalkを使う
  • 動作可能環境を減らしてでもアプリの容量を削りたいなら使わない

※ただし更に検証の余地あり

実際の作業は次回に譲って、後は調査結果やらなんやらが続きます。

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

意見要望を頂いた

割と独り言めいたブログなので、
「試してみてどうなった」とか、「こういう物があるよ」という情報を頂けるのはありがたいですね!

要約すると頂いた情報はこんな感じ。

  • cordovaで変換したものを実行したら「Your browser does not support web audio API.」というエラーが出た。
  • 音楽の形式を全て、対応しているはずのogg形式にしてもなる。
  • ツクールのヘルプ通りにclosswalkやmacのcordovaで変換したときは起きなかった

本当はもっと他にもあるのですが、段階的に解決していきます。

Cordovaの場合、下記で説明しているようにWebViewが処理を行うので、
OSが対応しているファイルが、必ずしもWebViewでも正常に扱えると限らない点は留意が必要です。

制作の過程で遭遇した挙動からその結論に達したので、
Cordovaで動作させるアプリに関して、Android4ではWeb Audio APIを使わず無音になる細工をしたり、RPG MakerMVのゲームはAndroid5以降としていました。
アプリ化手順紹介記事もそういった経緯を反映した内容となっています。

この質問を受けるまで、Closswalkが何なのかすら知らなかったのですが、私の悩みも解消してくれるかもしれません!

Android4.xのWebView

WebViewはブラウザ等を表示する時に使うプログラムで、
CordovaなどHTML5で動作するスマホアプリでも利用されています。

過去に何回かCordovaでAndroidアプリを作りながら、
OSのバージョンに四苦八苦した経緯があり、
「そんなんじゃないかなー」というふんわりとした予測はありましたが、
事実を添えてそれわかりやすく説いているのが下記の記事です。

第693回:WebView とは – ケータイ Watch
k-tai.impress.co.jpの関連記事を見に行く
つまりAndroidだけで見ても、これらの環境の違いを意識して開発を行う必要があります。

  • Android4.3までと4.4からは組み込まれているWebViewが異なる。
  • Android4までのWebViewはOSの一部として更新された。
  • Android5からは、WebViewのアップデートはOSと別枠になり、最新版が適用されやすくなった。
  • Android4.4のWebViewがメンテされるかは、各ユーザの端末でOSアップデートが配信されているかによる。

ここで特に注意が必要なのは4番で、Android4.4にどのバージョンのWebViewが入っているのかは、端末毎に事なるという事です。

自分がテストしたAndroid4.4とユーザのAndroid4.4が、提供されているWebViewのバージョン違いによって同じ挙動をしない可能性もあります。

私の初AndroidはTegra Note 7で、元はAndroid4.2でしたが、提供元のOS更新によりAndroid5.1となりました。
(Androidアプリ作るからメジャーな4.4にするかーと思ったら5になった・3・;)

その一方でOSアップデートの無い端末も存在します。
その辺りの事は提供会社側の都合(技術的な理由や大人の事情など)で決まってしまう為、
アプリ開発者やユーザがどうにかできる話からは逸脱してしまい、どうしようもない事です。

ちなみに非公式な方法や、サポートを受けられなくなる方法、つっこんだ手段をユーザ側に提示して操作してもらうなどで、
AndroidやWebViewのバージョンを上げさせて自分のアプリが動くようにする「技術的には可能」レベルの行為は、
問題外すぎるのでここでは選択肢に入らないものとします。

Crosswalkとは?

実は私も存在を知らなかったので、
あちこちの解説を見て私なりに理解した事を文章化すると、

WebViewを使う時、
OSに組み込まれた物じゃなくて、俺(Crosswalk)の用意した物を使えば、
機種毎に組み込まれているWebViewの違いに悩まなくていいよね!

・・・という物らしい(たぶん)

先の項目で長々と書いたWebViewに関する問題が一気に解決するように見えます。
こいつは素晴らしい!

その一方でアプリ化した時の容量は、Crosswalkを導入すると20MB程度増えるようなので、アプリの規模によっては容量問題に悩む事になります。

実際に余裕で容量制限をぶっちぎっているプロ作品のアプリも見かけるので、
条件付きでそういった申請が可能なのかもしれませんが、無制限に大きくできる訳ではない事は確かです。

Google Playで配信できるアプリサイズが50MBから100MBへ引き上げ。
4gamer.netの関連記事を見に行く
また最新版WebViewを配信する環境が整っているAndroid5環境では、
実行環境や速度の面で目に見えた恩恵が得られにくいようで、
容量を増やしてでもAndroid4系に対応したいという前提で使う事になります。

MV公式のサポート状況を調査

実際にCrosswalkを使った開発を行う前に寄り道をします。

教えていただいた内容によるとツクールのヘルプに書いてあるやり方ではうまくいくとの事で、
それを真似してうまくいけば楽じゃんと思い、
ツクール公式(tkool.jp)でどの程度扱っているかざっと調べてみました。

外部のツールだからサポートしないと明言しているのに
何処に書いているんだ、おおお・・・

というボケを実際にかまし、
「アプリのヘルプだよ!」と、そちらを見に行ってみると、

MVのマニュアルからアプリ化方法を探す

Output Formats とか Converting to an Android App とかの項目がいかにもですね。

早速読み進めてみたものの、
Converting to an Android Appの最初の内容が「Pythonをインストールせい!」だった事に衝撃を受ける私・3・;

JAVAでAndroidアプリを作る(公式推奨)やり方を知った上で、
Cordovaでアプリを作る変化球を投げているので、
Pythonを使うのはいきなり不意打ちでした。

でもPythonは初心者にもとっつきやすいと聞いている事と、
やっている事がそこまで違うようには見えないので、
要はWindowsで動くスクリプト言語なら何でも良いのかもしれません。

Crosswalk使えと書いてあった

そして、ちゃんと読み進めていくと「Crosswalk使え」という記述を発見しました。
同じ事をCordovaで行う事がこの記事のゴールという事ですね。

続きを書きました!

CordovaでCrosswalkを使う-2
第2回に移動する


コメントを残す

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