グーグルはAndroid Gingerbreadをどう料理するつもりなのか?

Androidにとって厄介者となってしまったジンジャーブレッドマンだが、グーグルはどうやら彼を葬り去る準備を終えたようである。

GingerbreadはAndroidの古いバージョンで、このOSが搭載されたスマートフォンはまだ驚くほど数多く出回っている。これらのスマートフォンを使っているユーザーはグーグルの新しいソフトウェアを入手していないということであり、デベロッパーは自分のアプリに古いオペレーティング・システムとの互換性を持たせたり、Android市場の細分化に対応しなければならないということである。

Android 4.4 KitKat最大の特徴は、実は新しいダイヤラーでもCaller IDでも半透明のナビゲーションバーでもない。オペレーティング・システムにしっかり練り込まれた「グーグル・エクスペリエンス」でもない。Android 4.4の一番重要な側面は、Androidプロジェクトのダイエットなのである。

nexus_5_casesグーグルは、Androidやその他のグーグル・アプリをよりコンパクトで効率的なものにして多種多様なモバイル・ハードウェアで動作させるため、プロジェクトのダイエットに尽力している。このため、Android 4.4は512MB程度のRAMでも動作するように作られているようだ。512MBという数字は、2010年12月にリリースされたAndroid 2.3 Gingerbreadを現在搭載しているローエンド・デバイスの多くに当てはまる。

2013年10月の時点でも、Gingerbreadはグーグルのサーバーにアクセスしている全Android端末の28.5%を占めている。Androidメーカーの多くは、ローエンドのスマートフォンにGingerbreadをデフォルトOSとして搭載する。それより新しいバージョンのオペレーティング・システム(Ice Cream SandwichやJelly Bean)だと、メモリ容量に限りがある端末には大きすぎてまともに動かないからである。

これを解決するために、グーグルは様々な方法を用いてハイエンドな機能とユーザー・エクスペリエンスを維持しつつ、Android のサイズを縮小させた。各メーカーや携帯電話事業者に、消費者のデバイスをGingerbreadからAndroid KitKat 4.4にアップデートするという選択肢が与えられたのである。もし各メーカーがユーザーのスマートフォンをアップデートする道を選ばなかったとしても、それは少なくともグーグルのせいではない。

「我々の製造パートナーには今回の概要について説明してあり、彼らは皆非常に興奮していた。」と、GoogleでAndroidのエンジニアリングを担当しているバイス・プレジデントのヒロシ・ロックハイマーは語っている。「彼らは皆最新のものを出荷したいと望んでいる。これまでジンジャーブレッドを出荷していたのはそうしたかったからではなく、それしか選択肢がなかったからなのだ。」

常にユーザーを最新バージョンのiOSにアップグレードさせる(例えそれが古い端末を使っているユーザーにとって最良のエクスペリエンスではないと判明したとしても)アップルとは実に対照的である。

Androidのデベロッパー・サイトに詳細が記されている。

次世代のAndroidデバイスを製造するOEM各社は、低メモリのデバイス上でも効率的にアンドロイド4.4を実行するためのオプションを活用することができます。Dalvik JIT コード・キャッシュのチューニング、Kernel Samepage Merging(KSM)、zRAMのスワップその他の最適化はメモリ管理に役立ちます。新しい構成オプションによって、プロセスのメモリ不足レベルのチューニング、グラフィックのキャッシュ・サイズの設定、メモリ再要求のコントロールなどが可能となっています。

Android自体の変更としては、システム全体にわたってメモリ管理を改善し、メモリの占領領域を縮小しました。コアシステムの各プロセスはヒープの使用が抑えられており、大量のRAMを消費するアプリから、より積極的にシステムメモリを保護します。例えばネットワーク接続を変更するときのように、複数のサービスが同時にスタートするような場合、Androidは各サービスを小さなグループとして連続的に起動し、最大メモリ要求を回避します。

GoogleでAndroidのエンジニアリング・ディレクターを務めるデイブ・バークは、我々に開発者版のNexus 5上で動作するメモリ管理アプリを見せてくれた。オペレーティング・システムで現在稼働している各アプリの個別メモリ・ステータスと、デバイス全体のメモリ・ステータスを監視するアプリである。Androidのメモリ・ステータスが緑色であれば、開発者は自分のアプリがAndroid内で正常に動作しているのだと分かる。もし黄色か赤色になっている場合、開発者がアプリを改良しなければAndroidは自動的にシャットダウンする恐れがある。

これらの機能によって、サードパーティ製のAndroid用マルチタスク・マネージャー・アプリは基本的に必要がなくなった。オペレーティング・システムが自動的に行ってくれるようになったからだ。これは、古いAndroid端末にとっては非常にありがたいことである。

新しいデバイス・メモリ管理ツール

kitkat_procstatsグーグルは、デベロッパーに向けて2つのアプリケーション・メモリ管理ツールを作成した。procstatsツールとmeminfoツールだ。procstatsツールはデベロッパーがアプリやサービスのメモリ・サイズを長時間にわたってチェックすることを可能にし、meminfoツールはアプリのメモリ使用に関する詳細を教えてくれる。例えば、フィットネスアプリにおいてGPSトラッカーがメモリを圧迫しているような場合、meminfoツールでその原因を詳細なレベルで確認することができる。procstatsツールはAndroid Software Developer Kitから入手することが可能だ。

デイブ・バークは彼の真新しいNexus 5で、メモリ使用をチェックできるアプリ「Process Stats」を見せてくれた。このアプリには「Developer Options」の下にある設定タブからアクセスでき、アプリのメモリ使用に関する多様な測定基準を確認することが可能だ。このアプリは基本的にprocstatsツールのアプリ版であり、デバイスのメモリ使用状況を視覚的に(緑色は良好、赤色は危険)チェックしたり、メモリ使用で各アプリが占める割合を個別に確認することができる。バックエンドでのメモリ使用とフロンドエンドでのメモリ使用の両方を表示するように設定することが可能だ。

ジンジャーブレッドマンの抹殺

グーグルは、Androidとグーグル・アプリを効率化してオペレーティング・システムのメモリ使用を減らしただけでなく、オペレーティング・システムの大掃除も行った。以前は「カレンダー」や「Google Playアプリストア」や「地図」のようなグーグル・アプリはオペレーティング・システムと直接紐づいていたが、今はもう違う

Androidには、これらアプリのアップデートと機能性を、オペレーティング・システムと統合されたハードウェアの外部で管理する機能が設けられた。「Google Play Services」はほぼ全てのグーグル・アプリをコントロールする機能であり、ユーザーへの通知や同意なしにバックグラウンドで自動的に、自身と管理下にあるプロセスの更新を行うことができる。

中核となるグーグル・アプリをアンドロイドのOSレベルから切り離すことによってアプリの制御を行いやすくし、自身で実行する必要がある機能のAndroidカーネルを解放するのである。これによって、Androidが実行する機能は基本的にハードウェアと直接結びつきのあるものだけとなった。センサーの使用やBluetooth、Wi-Fi、カメラなどである。

これらの変更は最終的にGingerbreadを葬り去ることになるだろうか?それは各メーカーがKitKatへのアップデートを選択するかどうかにかかっている。古い端末にKitKatが選ばれることはまずないだろう。しかし、Androidスマートフォン・メーカーが今後新たに作るデバイスには、デフォルトOSとしてGingerbreadを搭載する必要はない。今回のグーグルの対応によってそのようなケースは稀になっていくはずである。その結果、Android 2.3 Gingerbreadは2.2 FroYoやそれ以前のバージョンのような自然死を迎えることになるだろう。

アプリ開発者にとってこれは朗報である。しかし、グーグルはまだAndroidのフラグメンテーションを完全には解消していない。例えば各メーカーが自分たちの端末に、各Androidバージョンの特色を強調した「スキン」を用意したいという要望は、エコシステムの表面的な細分化につながるだろう。

言い換えれば、ジンジャーブレッドマンが完全に滅びるまでには長い時間がかかりそうである。

Pocket