検索
特集

Windows 10移植、ドローン、Eddystone、Blink――プラットフォームを超えるAndroidの今を知るABC 2015 Summerリポート(1/4 ページ)

2015年7月20日に開催されたAndroid Bazzar and Conference 2015 Summerのセッションの中からクロスプラットフォームに関連する4つの模様をリポートする。

Share
Tweet
LINE
Hatena

 2015年7月、日本Androidの会主催の「Android Bazzar and Conference(ABC) 2015 Summer」が開催された。最新技術や製品を知り、自分で創る楽しみを共有できる同イベントでは、さまざまなテーマの講演が行われた。

 本稿では、クロスプラットフォームをテーマに下記4セッションの模様をリポートする。

WebViewがBlinkになってAndroid Webはどう変わった? 7つのポイント

 「今、Androidのブラウザーの中で起きていること!?」のトラックでは、ふろしき/html5jの川田寛氏がWebレンダリングエンジンのBlink(Chromium)でAndroid Webがどう変わるのかを7つのポイントで解説した。


ふろしき/html5j 川田寛氏

 「Androidでは、Webとアプリの境目が曖昧になってきた」。川田氏は、「ここ数年グーグルがモバイルに力を入れており、その一環でさまざまな改善が行われている」と述べる。その1つが、WebViewだ。WebViewは、HTMLドキュメントやURLといったWeb固有の概念をAndroidアプリで解釈できるよう仲介する機能で、「WebView内包アプリ型」「システムWebView型」の2つに分かれる。

 そのWebViewのうち、今回川田氏が紹介したのは、Android側が共有のWebViewを提供して、アプリ側がそれを使う「システムWebView型」。現在、Android標準ブラウザーやTwitterアプリなどが採用するタイプで、レンダリングエンジンがBlinkに切り替わった。

 このBlinkになったことで、Android Webはどう変わったのか。川田氏は7つの改善を取り上げた

  1. スケジューラー
  2. アニメーション
  3. UI(ユーザーインターフェース)
  4. バックグラウンド処理
  5. ネットワーク
  6. JavaScript
  7. ペイント

 一つ目は、ユーザー操作に対するリアクションを100ms以下(ユーザーが遅延を体感的に感じない速度)にするために、requestIdleCallBack APIを実装したことだ。同APIは、キューにタスクがない場合にタスクを実行するというもので、キュー内に一生実行されないタスクがないよう、Timeoutフラグを付けて期限を切る。マイクロソフトは似たような仕組みでSetImmediate APIを提供しており現在は両者の取り扱いで議論が起きていると川田氏は明かしながら、「大きな進化」と今回の改善を評価する。

 二つ目は、DOM操作のアニメーションを60fpsで動作させるための改善が行われ、Web Animationsが開発された。これを使うことで、JavaScript上でアニメーションを制御でき、高速化と細かい制御が実現する。「今年末くらいからWebのフロントエンドエンジニアの間で熱くなるトピックスの一つだ」(川田氏)

 三つ目は、モバイル対応のユーザビリティに向けた改善だ。これは、Add to home screenで実現する。デスクトップにブックマーク相当のアイコンが置けるようになり、他アプリと同じ方法でWebにアクセスできるようになる。この他、ランドスケープで固定されたページを作成できる「Manifest for a web application」も提供される。

 四つ目は、バックグラウンド処理の改善だ。モバイル環境は常時起動状態であることから、バックグラウンド処理を効率化するためにService Workerが導入された。ローカルプロキシとして動作して処理を効率化、プロキシが起動していない状態でもコンテンツを渡すことが可能だ。

 五つ目は、ネットワークの品質保証だ。「TCP/IP以下のネットワークでは品質担保があまりなく、これまではDomain ShardingやCSS Spriteなど泥臭い運営でカバーしてきた。これを、もう少し下のレイヤーで、正攻法で解決しようという流れがあった」(川田氏)。こうしてHTTP2が登場したのだが、ウインドー制御やパケロスを解決するための手続きがOSのライブラリ側にひも付けられているため、きめ細かな制御ができない。そこで、TCPをさらに上位へ持ち上げたQUICが導入された。「まだミドルウエアがそろっていないので、実用性については今のところ未知数だ」(川田氏)

 六つ目は、高速かつメモリにやさしいJavaScriptの改善として、「Oil-pan Heap 3」が紹介された。「JavaScriptのHeapとC++のHeapを共有でき、DOMなどのメモリリークを改善できる」。また、アセンブラーのコードをJavaScriptで動かす、「Web Assebmly」「SIMD.js(ES7)」も導入された。

 そして最後は、Slimming Paintだ。CSSでの変更やレイアウト決定を受けて、どの範囲内を再描画するかの手続きのアルゴリズムを考えるプロジェクトだ。パフォーマンスや正確性、柔軟性の改善が見込まれる。

 「グーグルは開発メーリングリストでモバイルブラウザーの改善に注力すると述べており、ますます強化されるだろう。Androidの今後の展開を見極める上でも、彼らの動向に注目したい」(川田氏)

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る