HOME > 開発者向けBLOG > Sencha Blog >  Android 5.0 Lollipop :約束通りの「甘さ」

Technology Note 開発者向けBLOG

Sencha Blog

Android 5.0 Lollipop :約束通りの「甘さ」

こんにちは、ゼノフィnakamuraです。

この記事は、US Sencha社ブログ Android 5.0 Lollipop: As Sweet as Promised を翻訳したものです。

Android 5.0 ‘Lollipop’ は、Google がモバイルプラットフォームのためにリリースした最も重要なアップデートの一つとして位置づけられています。 Google’s Material Design を使った新しい見た目と、5000 以上の新しい API はとにかく興奮ものです!

Sencha は HTML5 と Web にはしっかりとコミットしているので、新しいリリースが Web 技術を必要としている開発者やエンドユーザーにどのような影響があるかをチェックしています。Android は米国では モバイルデバイスの 51.5% のシェア を占めていることもあり (世界的には約 85%) 、この新しいリリースについて詳しく分析し、 Web に関する重要な点について述べることにしました。

Android 5.0上の Web

Android 5.0 は、Chrome for Android 38 がデフォルトブラウザとして出荷されています。これは、Google Play Store で少し前から手に入れることはできたので、Android ユーザーにとっては大きなことではないかもしれません。また、Chrome for Android 39 が世の中に出回り始めていて、‘Lollipop’ デバイス所有者もアップデートを受けるのは時間の問題とも言われています。Web 開発者にとって一番の関心があるのは新しい Android WebView です。

WebView の改良点

新しい Android 5.0 WebView は、Chromium 37 がベースになっています。しかし、Android 5.0 上の一番大きな変更点と感じられるのは、コア WebView が Android OS にカップルされていないということです。Google はアップデートをプッシュしたり、WebView を変えたり直したりを Google Play Store を通して行うことができるようになりました。それによりハイブリッドアプリケーションは、Android OS のリリースサイクルより頻繁にアップデートができるようになりました。これらについては、Google developer docs 内の Chromium WebView セクションで詳しく知ることができます。

こういった大きな力があると大きな問題も潜在的に増えてしまいます。ユーザーが app store からデバイスに取り込むものを最終的に判断できるため、この素晴らしい機能は断片化を生んでしまいます。例えば、1人のユーザーは Chromium 37 WebViewを使い、他の人は既に38 や 39 にアップデートしてしまっているといった様な状況です。

どんなモバイル環境でもこういった断片化を解決する策を探しているのなら Sencha Space をチェックしてください。

もしくはウェビナーの記録をご覧下さい。
Sent Space – デスクトップ/モバイル アプリをセキュアに デプロイ / 管理 する方法

新しい要素

先ほど Android 5.0 の WebView が Chromium 37 を使い、それと同時にデフォルトブラウザーが Chrome for Android 38 であることを伝えました。しばらくの間、これは少し問題を引き起こすかもしれません。以下の表を見ての通り、真ん中と右の列では違いを比較していますが、真ん中には右と比べて明らかに緑の領域が足りていないことがわかります。

5.0 WebView は FileSystem、FileWriter、Battery Status、Full Screen、Web Speech などの機能が使えません。興味深いことに Web Speech API は Chromium 37 にも存在していますが、実際に喋ってくれる声が存在しないようです。また、我々の見識では、Web Audio API もブラウザー 37 でも使えるようです ( caniuse.com ではまだ認められていません) 。

言うまでもありませんが、できる限り早くChromium 38 の全ての改良点を WebView でもアップデートしてくれることを願っております。

現段階では、 WebView が Android 4.4.4 から 5.0 になったことで得られた大きな機能を紹介していきましょう。

HTML Import

Android は既に HTML Templates に対応している様に、HTML Import は Web Components の将来にとって非常に重要なアップデートです。これにより開発者は iframes や JavaScript を使うことなく、HTML ドキュメントを他の HTML ドキュメントに含むことができるようになりました。

Web Animations API

これは Web プラットフォームの進化にとっては重要な機能の一つです。これによりブラウザはユーザーがエレメントをアニメートしたいことを認識でき、これをネイティブでハンドルすることができるようになりました。例えば、マニュアルで CSS値をトラックしたり変更する代わりに、element.animate() コールを使うことでアニメーションプロパティをパスすることができます。これにより、AnimationPlayer が現れリスナーを追加したり、アニメーションをコントロールしやすくなります。

getUserMediaStream API

この API は外部のデバイスデータ (例えば Web カメラのビデオ) へのアクセスを開いてくれます。これにより全く今までとは違う切り口のアプリケーションの作成が可能になります。

WebRTC

ついに ブラウザを通して、peer-to-peer でコミュニケーションをとることがビルトインで出来るようになりました。これは企業のコミュニケーションアプリやモバイルゲームなどで非常に有効だと思われます。

SVG Fragment IDs

以前の iOS 8 ブログ記事でも述べたように、これはあまり知られていませんが、ベクターベースのスプライトシートの機能を解放する非常に強力な機能です。これは最新のブラウザ間で使えるようになったもので、大きな前進だと言えます。

WebGL 3D Canvas Graphics

多くの人々が興奮しているのは、完全なハードウェアアクレラレータ 3D グラフィックサポートでしょう。ゲーム開発者はこういった機能を IE、Safari、iOS、Android と Chrome間 でも使えるようになることを願っているでしょう。間違いなくアプリ開発者もこの機能を利用すると思っています。

Cordova や PhoneGap ユーザーも自分のアプリケーションにこういったパワーアップが施されることは非常に興奮するでしょう。そして、我々は Web がモバイルアプリケーションのプラットフォームとしてポテンシャルを拡大していることを認識しています。Sencha Space は更に一歩前進し、Chromium 38 ベースの単一の WebViewを使った Android クライエントアプリをすべての Android 4.x デバイスに提供しています。この改良によりハードウェアアクセラレータグラフィックを現在主流でインストールされていある Android に持ち込むことができます。

パフォーマンスの悪化

HTML5 開発者は、モダンブラウザが新しい機能をサポートすることで、 Web アプリケーションがどんなデバイスでも素晴らしい体験を得られるようになることに常に関心を持っています。しかし開発者は HTML5 の機能だけでなく、それと同時にアプリケーションが速いかどうかを気にしなければいけません。 Web アプリケーションは Android 5.0 ではどれほどのものなのでしょう?

最近の iOS 8 アップデートとは違い、Android 5.0 は HTML5 のパフォーマンスに関しては特別に改良されていません。その一方で、Android のストックブラウザはしばらくの間 Chromium ベースでした。しかし、そういった反復もスピードの加速とはあまり関係がありませんでした。

しかし、分析していくと物事が前進していることもわかります。これは特に WebView でです。誰もが予想するように、Chrome 38 を 4.4.4 もしくは 5.0 で実行しても特別どっちが優位とかはありませんでした。これらのテストはすべて Nexus 7 (2013) が Android 5.0 GA を使って行われました。

Octane V2

ここでは Google の Octane v2 スコアを見ていきたいと思います。Android 5.0 WebView が劇的に改良されていることが見て分かります。例えば、Splay テストは 324%、Deltablue は 87%、Box2Dweb は 68% 向上していることがわかります。

Android 5.0 を使ったデバイスのベースラインが Chromium 37 ではあるため、今回のアップデートではパフォーマンスに関しては正しい方向に進んでいるように見えます。

Dromaeo Dom Core Tests

Dromaeo Dom Core テストでは、5.0 の WebView は Dom Attributes の分野以外では向上していることがわかりました (ここでは 20% もパフォーマンスが低下していました) 。それに比べ、Dom Query は Chromium 37 では大きな躍進がありました。表では見づらいですが、Android 5.0 WebView では Android 4.4.4 に比べて18%も増加しているのです。

Dromaeo CSS Selector Tests

Dromaeo CSS Selector テストでは、オレンジと青の方が良い結果を出していることがわかります。つまり、Android 5.0 に進むことで CSS Selector テスト は後退しています。CSS Selector パフォーマンスは全体的に遅くなっていると言えます。

Dromaeo JavaScript Tests

ここでも Android 5.0 に移ることでパフォーマンスが低下している結果がでています。ほぼ全てのテストで低下が見られました。一番大きな低下は Code Eval を Android 4.4.4 と Android 5.0 WebViewで比べた場合で、16.8% もの低下が見られました。これらはどれも致命的なレベルでの低下ではありませんが、いずれにせよ向上してくことを願うばかりである。

IE Fishtank Test

2D canvas drawing でも Android 5.0 が大敗を喫してしまいました。より現実的な 100 Fish というテストでも、Android 5.0 WebViewでは 40% もの低下が見られました。こういった FPS は Web ベースのゲーム開発者にとっては受け入れ難い事実でしょう。

SunSpider Tests

SunSpider テストもあまり心が躍るような結果はありません。なぜなら現在トップを走っているのは 4.4.4 の WebViewだからです。String、Crypto、そして Date テストでは 15%ほどのパフォーマンスの低下が WebView 間で見られました。 WebView パフォーマンスは現状では Chrome 38 ブラウザより良いパフォーマンスをしていることもわかります。

HTML5 Tests

最後に、全体的な HTML5 の結果を見てみましょう。

WebViewで実行されるハイブリッドアプリケーションは、Android 5.0 では Android 4.4 に比べて、沢山の機能を得られています (493 対 434) 。開発者は WebViewのパフォーマンスの向上と新しい機能性に興奮すべきでしょう。

結論

breakdown

Android 5.0 のリリースは、様々な (良いものも悪いものも) レビューを HTML 5 開発者にもたらしています。

現状でのパフォーマンス比較には不満はありますが、実際にデバイス上で遅いと感じるようなことはありません。新しい Nexus 6 と Nexus 9 (改良されたハードウェア) に期待しつつ、こういったパフォーマンスの問題も話に上がらなくなるとおもっています。

WebView 機能の向上に伴い、Android 開発者のワークフローが発展していることも確認しています。独立したアップデートにより、Android 端末上での Web は誰にとっても良いものとなるでしょう。

たくさんの機能と HTML 5 へのサポートを見る限り、 Web の将来に関してはポジティブな見通し以外ありません。これらの情報が役に立ったことを願います。コメントもお待ちしております。

詳しくはウェビナーの記録をご覧下さい。 :
Sent Space – デスクトップ/モバイル アプリをセキュアに デプロイ / 管理 する方法

PAGETOP