Crosswalkを使うとどれくらいパフォーマンスがアップするかテストしてみました
Intelが開発、提供しているハイブリッドアプリ用のWebViewがCrosswalkです。
Crosswalk - build world class hybrid apps
Crosswalk登場の経緯
ハイブリッドアプリでは通常、OS標準のWebViewを使いますが、Crosswalk版はCrosswalkをレンダリングおよびJavaScriptエンジンとして使うようになります。図にすると次のようになります。
通常のハイブリッドアプリがHTML5/JavaScriptのコードを持ち、Android OSが提供するWebViewを使うのに対して、さらにCrosswalk版はChromiumベースのレンダリング/JavaScriptエンジン(Crosswalk)をアプリ内に内包します。
なぜCrosswalkが登場したのかと言うと、これまでハイブリッドアプリにおいてOS間におけるレンダリング/JavaScriptエンジンの違いによる動作、パフォーマンスの違いが大きな問題になってきました。Android 4.4になり、Chromiumベースになったことでパフォーマンスは大きく向上しましたが、それでも端末間の動作差異が微妙に残ってしまっています。4.4以前の端末においてもハイブリッドアプリのパフォーマンス、機能を大きく改善してくれるのがCrosswalkです。
Crosswalkにより、大きく分けて以下の3つの利便性があります。
1. レンダリングエンジンの統一
CrosswalkはPhoneGap/Cordova、そしてMonacaアプリに同梱して一つのアプリとして配布できます。つまり異なるAndroid OSにおいてもWebViewのバージョンが統一されるようになります。
2. 最新のAPIが利用できる
CrosswalkはGoogle Chromeベースではなく、Chromiumベースになります。ChromiumはGoogle Chromeのベースになるオープンソース・プロジェクトですが、その成果がGoogle Chromeに反映されています。そのため、より先進的なAPIを(しかもOSのバージョン差異を気にすることなく)利用できます。
3. パフォーマンスが向上
今回の記事ネタになりますが、Chromiumは最新の技術を使い、パフォーマンスが向上しています。どれくらい向上しているかは後述します。
デメリットとしては、
1. Android 4.0以降限定
CrosswalkがサポートしているのはAndroid 4.0以降になります。2.3などをターゲットして考えると使えないということになります(またはアプリを分割しないと いけません)。
2. アプリサイズが増えます
レンダリングエンジンを内包しますので、その分アプリのサイズが大きくなります。10MBくらいは大きくなるようです。
といったデメリットがあります。とはいえAndroid 4.0以降向けに提供されるハイブリッドアプリであれば選択しない手はないのではないでしょうか。
3. 最新の環境下ではCrosswalk相当な場合があります
例えばAndroid 4.4.4の場合、Chromeのバージョンが33.0.0.0にあがっており、WebKitは537.36になっています。これはCrosswalk版と同じになります。このように最新のAndroid OS環境の場合、Crosswalk相当になることがあります。
Android 4.1でチェック
Android 4.1、Nexus 7相当の環境でテストをしました。手元にAndroid 4.1実機がなかったのでGenemotionで仮想環境を作っています。この環境にMonacaデバッガー、Monacaデバッガー(ハイパフォーマンス版)をインストールしています。