- ニュース

iPhoneを使う上で特に際立つ点の一つは、Androidと比べて非常にスムーズに操作できる点です。Androidは画面に触れてからOSが反応するまでにかなりの時間を要するため、ラグが生じますが、iOSは指が画面に触れる前に、ユーザーが何をしたいのかをほぼ予測しているかのようです。
Appleは一体どうやってこの驚異的な偉業を成し遂げたのだろうか?もっと適切な質問はこうだ。「Googleは一体どうやってAndroidのマルチタッチをここまで台無しにしてしまったのか?」ソフトウェアエンジニアリングの学生で、元Googleインターンのアンドリュー・マン氏によると、Androidはあまりにも台無しなので、GoogleがiPhoneやiPadのパフォーマンスに匹敵することは決してできないかもしれないという。痛っ!
始める前に、少し背景を説明しましょう。以前、AndroidのUIはiOSに比べて遅いと言われていましたが、これはHoneycombまではUI要素がハードウェアアクセラレーションされていなかったためです。つまり、Androidスマートフォンで画面をスワイプするたびに、CPUはすべてのピクセルを再度描画する必要があり、これはCPUにとってあまり得意ではないのです。
その議論は一理ありますが、もしそれが本当なら、Android 3.0 Honeycomb がリリースされた時点で、iOS と比べてタッチ応答の遅延が目立たなくなっていたはずです。ところが、どうでしょう?Android デバイスは Honeycomb をインストールした後でも、依然として遅延が発生しています。
最近のAndroidスマートフォンのほとんどは、iPhoneと同等かそれ以上のスペックを備えています(例えば、ほとんどのAndroidスマートフォンは1GBのRAMを搭載していますが、iPhone 4Sは512MBです)。問題はハードウェアではありません。では、一体何が問題なのでしょうか?
マン氏によると、AndroidがタッチUIを遅延なくレンダリングできない理由は次の通りです。iOSでは、UIレンダリングプロセスは専用のスレッドでリアルタイム優先で実行され、他のプロセスを停止してUIのレンダリングに全神経を集中させます。つまり、iPhoneのディスプレイに指を触れるたびに、OSは文字通り「誰かが触っている!誰かが触っている!他の作業は全部止めろ!誰かが触っている!」と発狂するのです。
しかしAndroidでは、UIレンダリングプロセスはメインスレッドと並行して通常の優先度で実行されます。つまり、UIのレンダリングは、例えばポッドキャストをバックグラウンドでダウンロードしたり、SMSをチェックしたりするのと同じように扱われます。そのため、UIがカクカクするのです。
これが何を意味するのか、そしてなぜ Google が Android をこのように設計するほど愚かだったのかを Munn がここで説明します。
冒頭で説明した設計上の制約により、Android UI は完全にスムーズになることは決してありません。
– UIレンダリングはアプリのメインスレッドで行われる
– UIレンダリングは通常の優先度を持つGalaxy NexusやクアッドコアのEeePad Transformer Primeでさえ、この2つの設計上の制約が満たされない限り、スムーズなフレームレートを保証することはできません。3年前のiPhoneのスムーズさに近づくには、Galaxy Nexusのパワーが必要だという事実は、そのことを物語っています。では、Androidチームはなぜレンダリングフレームワークをこのように設計したのでしょうか?
Androidの開発はiPhoneの発売前に始まり、当時はBlackberryの競合製品として設計されていました。最初のAndroidプロトタイプはタッチスクリーンデバイスではありませんでした。Androidのレンダリングのトレードオフは、キーボードとトラックボールを搭載したデバイスには理にかなっています。iPhoneが発売されると、Androidチームは競合製品を急いでリリースしましたが、残念ながらUIフレームワークを書き直すには遅すぎました。
では、なぜGoogleはUIフレームワークを変更しないのでしょうか? Androidマーケットにあるすべてのアプリを新しいフレームワークに対応させるには、膨大な作業が必要だからです。少なくとも1年はかかるでしょうし、もしかしたら実現しないかもしれません。
つまり、GoogleがAndroidの遅延問題に完全に対処するには、基本的にリセットボタンを押してアプリエコシステムを破壊する必要があるということです。一方、iOSはマルチタッチスマートフォンをサポートするためにゼロから構築されました。実際、その先見の明があったのはAppleでした。物事を正しく進めることが重要です。
[Redmond Pie経由]